【问题标题】:reading and writing dates with boost阅读和写作日期提升
【发布时间】: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


【解决方案1】:

查看 Boost.DateTime IO 教程中有关格式化字符串的部分。

http://www.boost.org/doc/libs/1_48_0/doc/html/date_time/date_time_io.html#format_strings

我想你会在那里找到答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多