私はSuse 10でmktime(struct tm *)関数を使用しています。Linuxでのmktimeの動作が混乱していますか?
今、私は夏時間が有効になっているときに奇妙な動作に気付いています。 9月15日18時10分に夏時間を開始し、夏時間補正を30分行うとします。今、私が9月15日18:10の日付を持つtm構造体をmktimeと呼び、tm_isdstが0に設定されている場合、tm_isdstが1に設定されたtm構造体で同じ値が返されます。
しかし、 9月15日18時10分、tm_isdstが1に設定されている日付を渡すと、時刻は17:40に変更されています。 tm構造のこの修正は、9月15日18:10から9月15日18:40の間に渡された時間に注目されますが、その後は修正が行われず、dstフラグは有効のままです。 9月16日18時10分に日付を渡しても、時刻修正は行われません.dstフラグは有効なままです。
私は完全に混乱しています。これはmktimeの正しい動作ですか?
私は分かりません。おそらく、時刻が18:10(dst 0)をmktimeに渡すことは定義されていませんが、その場合に戻って最も役立つのは18:40(dst 1) –