小编poi*_*ter的帖子

从boost ptime获得一年

我正在将现有程序转换为C++,这里需要操作Sybase时间戳.这些时间戳包含日期和时间信息,据我所知,最好由boost::posix_time::ptime变量处理.在代码中的一些地方,我需要从变量中获取年份.

我的问题是:如何从boost ptime变量中最有效地提取年份?下面是其中所花费的示例程序3行代码,用一个额外的开销ostringstream变量和boost::gregorian::date变量.

根据boost文档:

类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;
}
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-date-time

5
推荐指数
1
解决办法
8816
查看次数

标签 统计

boost ×1

boost-date-time ×1

c++ ×1