修正了boost :: posix_time :: ptime的精度

时间:2012-02-06 09:13:09

标签: c++ boost

我遇到了boost :: posix_time:

的问题

这里代码:

boost::posix_time::ptime now(boost::posix_time::microsec_clock::local_time());
std::wstringstream record;
record  << now.time_of_day();

记录显示:例如。 “08:15:30.093750”。它是正确的。正是我所期待的。 但有时我看到很奇怪,例如。 “08:15:32”代替“08:15:32.000000”。 怎么得到“08:15:32.000000”?

提前致谢。

解决方案:

std::wstringstream record; 
boost::date_time::time_facet<boost::posix_time::ptime, wchar_t>* timeFacet(new boost::date_time::time_facet<boost::posix_time::ptime, wchar_t>(L"%f"));
record.imbue(std::locale(record.getloc(), timeFacet));
record << now.time_of_day();

2 个答案:

答案 0 :(得分:2)

如果您需要非默认格式,则需要提出要求:http://www.boost.org/doc/html/date_time/date_time_io.html

答案 1 :(得分:0)

使用hours, minutes, and seconds访问器并根据需要格式化输出。