提升日期时间:time_duration从秒到多天

时间:2013-04-09 19:26:03

标签: c++ datetime boost

我知道我可以使用boost::gregorian::date_duration表示天数的时间间隔,boost::posix_time::time_duration表示时间间隔,但是我可以使用一种简单的数据类型,可以用于从秒到很多天的时间间隔吗?

boost::posix_time::time_duration的限制(最长持续时间)是多少?

2 个答案:

答案 0 :(得分:1)

“POSIX时间”通常表示“自1970年1月1日以来的秒数”,如果您使用的是32位值,那么直到2037年左右,如果您使用的是64位,则更长。因此,如果不查看Boost的确切规格,我不会过分担心boost::posix_time::time_duration的限制。

答案 1 :(得分:1)

来自the documentation

  

默认情况下,posix_time系统在内部使用64位整数和32位整数来提供纳秒级别的分辨率 - 每个时间值为96位。作为替代方案,可以使用单个64位整数来提供微秒级别的分辨率。对于不需要纳秒级分辨率的许多应用,这种替代实现可以提供更好的性能和更紧凑的存储器使用。

  

build / Jamfile中定义的变量BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG在这些选项之间进行选择。要选择64位整数实现,只需从Jamfile中删除此定义。

因此,就你可能担心的那样,DevSolar的回答最后很好地总结了它。