サマータイムかどうかの判別
何が問題か?
ローカル時刻を見ただけではサマータイムが適用されているかそうでないのかの判別ができない。
ローカル時刻にサマータイムが適用される可能性があるかないかまでは判別できない。
サマータイムが適用される前提において
サマータイムにより、ダブっているところのローカル時刻を判別する機会はダブっている時にしかない。
サマータイムでずれる時刻はせいぜい2時間未満。このため、30分後、1時間、1時間半後の時差を見ることで無理矢理確認することはできる。
半年前もしくは半年先の時刻と比較して時差を求める。
少なくともどちらかがサマータイムであることは分かるが、どちらが正しいのかがわからない。
サマータイムの時刻のずれ方で判定する。サマータイムであれば、時刻が小さくなる。例えば、本来の10時が9時になる。
UTCが求められない場合
経過時間が計算できるならそれを使う。
C言語
is_dst フラグがある。