天天看點

struct tm 中的 tm_isdst 以及 mktime

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 及以後無論指派多少都是一樣。