考虑:
#include <time.h>
time_t now = time(NULL);
VS
time_t timer;
time(&timer);
它们是否都生成UTC值,如果不生成,它们有何不同?
答案 0 :(得分:3)
没有太大区别。理论上,你可以写:
time_t t1;
time_t t2 = time(&t1);
这会将t1
和t2
设置为相同的值。
我通常使用:
time_t t3 = time(0); // Or NULL
因为我很少需要两份同时的副本。目前尚不清楚为什么双重行为被认为是可取的,但是1978年第7版UNIX™就是这样,并且界面没有改变。
请注意,标准C(ISO / IEC 9899:2011§7.27.2.4'time
函数')只是说:
time
函数确定当前日历时间。值的编码是 未指定的。
time()
的POSIX定义为您提供了更有用的定义:
time()
函数应返回自纪元以来的秒数。
tloc
参数指向还存储返回值的区域。如果tloc
是空指针,则不存储任何值。
这可能是“UTC时间”的意思。