通过提升获得当地时间

时间:2010-03-22 14:04:56

标签: c++ boost time

我在文档中没有找到这个:如何使用boost获取本地时间(更好的格式化)?

3 个答案:

答案 0 :(得分:20)

使用posix_time从系统时钟构造时间对象。

例如,这会将当前系统时间输出为ISO格式字符串:

namespace pt = boost::posix_time;
pt::to_iso_string(pt::second_clock::local_time());

有关格式替代方案,请参阅上述链接参考的“转换为字符串”部分和Date Time Input/Output参考。或者,您可以使用访问器函数构建自己的输出字符串。例如,要获得美式日期:

namespace pt = boost::posix_time;
pt::ptime now = pt::second_clock::local_time();
std::stringstream ss;
ss << static_cast<int>(now.date().month()) << "/" << now.date().day()
    << "/" << now.date().year();
std::cout << ss.str() << std::endl;

请注意,月份会转换为int,因此会显示为数字。默认输出facet将显示为三个月的缩写(3月的“Mar”)。

答案 1 :(得分:0)

答案 2 :(得分:0)

我不知道这是否有任何帮助,但提升文档有一些examples的格式化日期。

另外,我认为this article描述了一些值得关注的基础知识。