既存のプログラムをC++に変換していますが、ここではSybaseのタイムスタンプを操作する必要があります。これらのタイムスタンプには日付と時刻の情報が含まれており、私の知る限り、boost::posix_time::ptime変数で処理するのが最適です。コードのいくつかの場所で、変数から年を取得する必要があります。
私の質問は、ブーストptime変数から年を最も効率的に抽出するにはどうすればよいですか?以下は、追加の変数と変数のオーバーヘッドを伴う3行のコードを使用するサンプルプログラムです。ostringstreamboost::gregorian::date
ブーストドキュメントによると:
gregorian::dateクラスptimeは、ある時点の日付部分へのインターフェイスに依存します
ただしgregorian::date、の基本クラスではないようですptime。どういうわけか私はここで何かが欠けています。
から年を抽出する簡単な方法はありませんptimeか?
サンプル:
#include <boost/date_time/local_time/local_time.hpp>
#include <iostream>
int main()
{
boost::posix_time::ptime t(boost::posix_time::second_clock::local_time());
boost::gregorian::date d = t.date();
std::ostringstream os; os << d.year();
std::cout << os.str() << std::endl;
return 0;
}