Boost DateTime:从秒到多天的time_duration

Boost DateTime: time_duration from seconds to multiple days

本文关键字:time duration DateTime Boost      更新时间:2023-10-16

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

boost::posix_time::time_duration的限制(最大持续时间)是什么?

来自文档:

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

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

就你可能关心的而言,DevSolar的回答在最后很好地总结了它。

"POSIX time"通常表示" 1970年1月1日以来的秒数",如果使用32位值,则可以使用到2037年左右,如果使用64位值则更长。因此,在不看Boost的确切规格的情况下,我不会太担心boost::posix_time::time_duration的限制。