tm_isdst

mktime() 将 struct tm 描述的时间转换成时间戳,tm_isdst 只是传入的时间是否是 DST(夏令时),tm_isdst 含有:

1: 是 DST

0: 不是 DST

-1: 由 mktime() 自己去判断当前系统设置是否是 DST

注意:有些实现是判断大于0还是小于0,没有限定为 1 和 -1, 但在我的 Linux 系统中,限定为 1 和 -1 了。


性能

同事测的传入 1 和 0 的i性能对比:

1: 1w 次耗时 2s

0: 1w 次耗时 0.02s


是否相差一小时

在我的系统中测试时,2001 年以前的时间赋值为 1 会比其他情况晚 1 小时,2001 及以后无论赋值多少都是一样。