请问有人可以向我解释这两行
// Current date/time based on current system
time_t now = time(0);
// Convert now to tm struct for local timezone
tm* localtm = localtime(&now);
答案 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