我正在尝试以这种格式读/写日期: 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,如果它不存在则表示时间在当地时区。我想要一些通用和无版本的版本来阅读它。
答案 0 :(得分:1)
查看Boost.DateTime IO Tutorial中格式化字符串的部分。
http://www.boost.org/doc/libs/1_48_0/doc/html/date_time/date_time_io.html#format_strings
我很瘦,你会在那里找到答案。