【发布时间】:2012-02-20 00:38:15
【问题描述】:
我正在尝试以这种格式读取/写入日期: yyyy-mm-ddThh:mm:ssZ
我正在这样做:
boost::posix_time::ptime t = boost::posix_time::time_from_string( "2012-02-20T00:26:39Z" );
std::cout << boost::posix_time::to_iso_extended_string( t ) << std::endl;
如果我删除最后的 Z,它会起作用,但如果我保留它,则会引发异常(错误的词法转换:源类型值无法解释为目标)。
有没有更好的方法来处理这些日期,而无需手动删除/添加 Z?从我在这里和那里读到的内容,我理解 Z 表示 GMT,如果它不存在,则表示时间在当地时区。我想要一些通用且无错误的版本来阅读它。
【问题讨论】:
-
您可以添加有关
Z的参考吗?因为我在任何地方都找不到它,与 boost:posix_time 和从字符串解析有关。 -
boost 文档中没有提到 Z,我只是碰巧得到了那种日期。我在这里找到了 Z 的含义:cl.cam.ac.uk/~mgk25/iso-time.html
-
"Z" 来自 ISO 8601 标准,表示 UTC(世界时),相当于 +00:00。 en.wikipedia.org/wiki/ISO_8601
标签: c++ boost boost-date-time