7

time.timezoneについては、Python ドキュメントには次のように記載されています。

ローカル (非 DST) タイムゾーンのオフセット (UTC から西への秒単位) (ほとんどの西ヨーロッパでは負、米国では正、英国ではゼロ)。

西ヨーロッパのほとんどで負の値を返す理由を知っている人はいますか? これらの国は、負のオフセットではなく、正のオフセットにあります。

例: ブリュッセルは UTC+1 タイムゾーンです...

4

1 に答える 1

8

これは Unix アーティファクトです。タイムゾーンの標準的な数値記述は、UTC から東への時間と分 (ブリュッセルでは UTC+1、ニューヨークでは UTC-5 など) ですが、Unixは UTC から西へtimezoneの秒単位で測定されます。

http://pubs.opengroup.org/onlinepubs/7908799/xsh/tzset.htmlから:

外部変数timezoneは、協定世界時 (UTC) とローカル標準時間の差 (秒単位) に設定されます。次に例を示します。

TZ  timezone
EST 5*60*60
GMT 0*60*60
JST -9*60*60
MET -1*60*60
MST 7*60*60
PST 8*60*60

なぜ Unix が逆になっているのかというと、おそらく Unix が元々アメリカで開発されたので、歴史的な事故だと思います。

于 2012-08-16T09:58:27.147 に答える