C++ 不一致';%f';boost::posix_time::time_facet和boost::posix_time::time_input_facet之间的行为

C++ 不一致';%f';boost::posix_time::time_facet和boost::posix_time::time_input_facet之间的行为,c++,boost,C++,Boost,我正在尝试将一个boost::posix_-time::ptime转换为一个特定的字符串格式(扩展ISO),然后返回到boost::posix_-time::ptime 令人惊讶的是,它看起来像是boost::posix_time::time_facet%f意味着000000到999999(没有小数分隔符)。但是对于boost::posix\u time::time\u input\u facet,它意味着.000000到.999999(带十进制分隔符) 见: 虽然我希望: 2019-04-30

我正在尝试将一个
boost::posix_-time::ptime
转换为一个特定的字符串格式(扩展ISO),然后返回到
boost::posix_-time::ptime

令人惊讶的是,它看起来像是
boost::posix_time::time_facet
%f
意味着
000000
999999
(没有小数分隔符)。但是对于
boost::posix\u time::time\u input\u facet
,它意味着
.000000
.999999
(带十进制分隔符)

见:

虽然我希望:

2019-04-30T12:23:29.000000
2019-Apr-30 12:23:29
not-a-date-time
我用的是boost 1.68

我是做错了什么,还是这是
boost::posix\u time::time\u facet
boost::posix\u time::input\u time\u facet
中的错误


注意:'%F'没有这个问题。

这肯定是一个boost错误。我在这里填写问题:

使用
%F
效果更好,但如果时间没有十进制信息,则具有不同的行为:

这绝对是一个boost bug。我在这里填写问题:

使用
%F
效果更好,但如果时间没有十进制信息,则具有不同的行为:

你的(更具可读性)比较与哪个根本不起作用。你的(更具可读性)比较与哪个根本不起作用。
2019-04-30T12:23:29.000000
not-a-date-time
2019-Apr-30 12:23:29
2019-04-30T12:23:29.000000
2019-Apr-30 12:23:29
not-a-date-time