我正在尝试获取cpp中的当前日期和时间,但无法理解这些行

时间:2019-12-29 16:55:47

标签: c++

请问有人可以向我解释这两行

// Current date/time based on current system


time_t now = time(0);

// Convert now to tm struct for local timezone


tm* localtm = localtime(&now);

1 个答案:

答案 0 :(得分:3)

这是一种非常古老的C风格方式,它基于time.h确定本地日期和时间。该头文件的文档进行了很多说明,但总而言之,time() Epoch (1970年1月1日为00:00)返回了系统时间(以秒为单位)时, em>空指针(因此为零),或来自另一个time_t集实例的时间。这里的指针是必不可少的,因为它根据指针值驱动函数的不同行为。

localtime()获取系统时间信息,并根据当前系统设置将其转换为本地时间。我一直不确定为什么将指针作为参数,但是我认为这只是为了保持与API的一致性。

获取本地时间的一种更好的,更多的C ++方法是使用std::chrono库(http://www.cplusplus.com/reference/chrono/?kw=chrono)。您可以在本地获得更高的分辨率(而不是精确到最近的秒),而无需进行指针摇动。例如,请参考:Outputting Date and Time in C++ using std::chrono