this question about formatting date + time strings using Boost的不同答案使用不同的方面。
One answer使用boost::posix_time::time_facet
,other answer使用boost::gregorian::date_facet
(请注意后者还包含时间,尽管名称为facet class)。
即,我们有:
boost::posix_time::time_facet("%Y-%m-%d %H:%M:%S");
VS
boost::gregorian::date_facet("%Y-%m-%d %H:%M:%S");
(我从链接的答案中略微调整了不相关的字符。)
再次注意,boost::gregorian::date_facet
包含时间,所以在某种意义上调用它date_facet
有点欺骗性,特别是在与{{1}对比时其开发人员明显感觉应该在facet类的名称中加入“time”。
另请注意,boost::posix_time::time_facet
包含日期,这可能更直观(尽管可以考虑纯格式次,但不能日期,所以也许它不应该更直观,“时间”方面可以包括“日期”而不是“日期”方面可以包括“时间”。)
但具体回到我的问题:我觉得如果我使用boost::posix_time::time_facet
版本,我必须错过一些涉及gregorian
方面的重要内容 - 人们不会费心去创建名称空间代表 Gregorian 日历,如果这无关紧要,对吗?
相反 - boost::posix_time
的版本缺少boost::gregorian
版本中的重要内容吗?
其中一个是另一个的超集吗?或者,它们的功能是否重叠,但有所不同?
boost::posix_time
和boost::posix_time::time_facet
有什么区别?