【发布时间】:2018-07-28 12:41:05
【问题描述】:
我有一个在TZ=UTC 中运行的服务器,我有这样的代码:
time_t t = time(NULL);
struct tm tm;
gmtime_r(&t, &tm);
问题是tm.tm_sec == 60当服务器处于闰秒内?
例如,如果我处于以下时间跨度:
1998-12-31T23:59:60.00 - 915 148 800.00
1998-12-31T23:59:60.25 - 915 148 800.25
1998-12-31T23:59:60.50 - 915 148 800.50
1998-12-31T23:59:60.75 - 915 148 800.75
1999-01-01T00:00:00.00 - 915 148 800.00
gmtime() 是否会为time_t = 915148800 返回tm == 1998-12-31T23:59:60,并且一旦超出闰秒,是否会为相同的time_t 返回tm == 1999-01-01T00:00:00?
【问题讨论】:
-
Leap Second Smearing 也值得考虑。
-
@user2864740 太好了,谢谢你提出这个问题,知道
gmtime将如何处理这个问题也很重要。
标签: c time posix unix-timestamp utc