Boost.Chrono vs. Boost.Date_Time

时间:2011-07-18 08:39:49

标签: c++ boost

使用Boost版本1.47,引入了Chrono库。 Boost.Chrono是否意味着替代Boost.Date_Time?

如果没有,它们之间有什么区别,我应该何时使用哪个?

我应该何时考虑在现有项目中用Boost.Chrono替换Boost.Date_Time?

1 个答案:

答案 0 :(得分:40)

来自Boost.Chrono的文档:

  

Boost.Chrono旨在实现C ++ 0x中的新时间设施,如N2661 - 睡眠基础的建议。该文档提供了关键设计决策的背景和动机,并且是本文档中大量信息的来源。

更具体地说,Boost.DateTime是关于日期和时间的。它具有许多功能,可根据区域设置和各种其他内容格式化显示日期。但是也有获取日期和时间以及操作它们的功能。

Boost.Chrono似乎专注于处理时间间隔。它没有高于“小时”的测量值,它根本没有日期概念。事实上,时刻只是作为特定时刻的抵消(自进程开始以来的时间,自1970年1月1日以来的固定“时代”以来的时间等)支持。

尽管存在一些重叠,但这两者似乎是互补的,而非竞争。有很多日期时间,Chrono没有,并且Chrono有一些事情,DateTime没有。遗憾的是,两者之间似乎没有任何互操作,因此必须将Chrono的持续时间手动转换为DateType的等效值。