5
我正在將現有程序轉換爲C++,並且需要操作Sybase時間戳。這些時間戳包含日期和時間信息,據我所知可以通過boost::posix_time::ptime
變量最好地處理。在代碼中的一些地方,我需要從變量中獲取年份。從提高獲得年份ptime
我的問題是:我怎麼能最有效地從提升的ptime變量提取年?下面是一個示例程序,其中需要三個代碼行,額外的ostringstream
變量和boost::gregorian::date
變量的開銷。
根據升壓文檔:
類的ptime取決於
gregorian::date
爲接口的時間點的 日期部分
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;
}