我有升壓::了posix_time問題:固定精度的boost ::了posix_time ::的ptime
下面的代碼:
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();
它的工作原理: '的std :: wstringstream記錄;'' 的boost :: date_time的:: time_facet <提振::了posix_time: :ptime,wchar_t> * timeFacet(new boost :: date_time :: time_facet(L「%f」));' 'record.imbue(std :: locale(record。 getloc(),timeFacet));' 'record << now.time_of_day();' ' –
2012-02-06 10:15:01
@PetervanderSanden:你也可以使用typedef'boost :: posix_time :: time_facet'來縮短它可能更健壯)。 – foraidt 2012-10-18 10:04:35