既存のプログラムをC++に変換していますが、ここではSybaseのタイムスタンプを操作する必要があります。これらのタイムスタンプには日付と時刻の情報が含まれており、私の知る限り、boost::posix_time::ptime
変数で処理するのが最適です。コードのいくつかの場所で、変数から年を取得する必要があります。
私の質問は、ブーストptime変数から年を最も効率的に抽出するにはどうすればよいですか?以下は、追加の変数と変数のオーバーヘッドを伴う3行のコードを使用するサンプルプログラムです。ostringstream
boost::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;
}