boost :: time_facet不格式化时间

时间:2019-03-18 20:36:10

标签: c++ linux boost datetime-format

我尝试使用自定义格式输出日期。对于Windows,它可以正常工作,但对于Linux,则不能。

int main()
{
   const boost::gregorian::date DATE_EPOCH(1970, 1, 1);
   const boost::posix_time::ptime PTIME_DATE_EPOCH(DATE_EPOCH);

   uint64_t time = 1552575540001;  // 14 Mar 2019 14:59:00.001
   using namespace boost::posix_time;
   const ptime posixTime = ptime(PTIME_DATE_EPOCH.date(), milliseconds(time));

   const std::string mask= "%Y-%m-%dT%H:%M:%SZ";

   std::ostringstream stream;
   stream.imbue(std::locale(stream.getloc(), new time_facet(mask.c_str())));
   stream << posixTime;
   std::string timeStr = stream.str();
   std::cout << timeStr;

   return 0;
}

但是我得到了2019年3月14日14:59:00.001而不是2019-03-14T14:59:00.001Z

能帮我找到问题吗?

0 个答案:

没有答案