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 及以后无论赋值多少都是一样。