c++本地时间,不受夏令时使用boost的影响

c++ local time without impact from daylight savings using boost

本文关键字:boost 影响 夏令时 时间 c++      更新时间:2023-10-16

我有一个系统,它有一些逻辑依赖于过去的时间。当我意识到因为我更多地使用时间来评估持续时间,并且我不在乎时间是否精确时,我可以完全避免夏令时的问题,如果我的API返回不受影响的时间。

注意我的项目是多平台长期运行的服务器(超过43。我不想使用可能重新启动的tick计数器。

我的问题是如何使用boost来给我当前的本地(或其他)时间,而不反映夏令时(这可能会导致每年两次的大跳跃)。

谢谢

boost::chrono::steady_clock

下面是一些例子

NB:如果你使用的是c++ 11编译器,你可以跳过boost而使用新的、标准的、可移植的<chrono>头文件。

你可以从1970年1月1日开始计算秒数,这与白天无关:

#include <time.h>
time_t seconds_past_epoch = time(0);

适用于大多数操作系统

使用Posix Time (Epoch)http://www.boost.org/doc/libs/1_55_0/doc/html/date_time/posix_time.html它是绝对的,您可以简单地将其与本地时区进行转换。