2017-08-22 8 views
2

次のコードは、1年間毎日のための私のローカル時刻との時差(米国中部標準時)とUTCを示しています日時モジュールはローカルタイムゾーンをどのように認識していますか?

結果:私は、任意のタイムゾーン情報を指定せずに

2010-12-31 15:14:03 6:00:00 
2011-01-01 15:14:03 6:00:00 
... 
2011-03-11 15:14:03 6:00:00 
2011-03-12 15:14:03 6:00:00 
2011-03-13 15:14:03 5:00:00 
2011-03-14 15:14:03 5:00:00 
... 
2011-11-04 15:14:03 5:00:00 
2011-11-05 15:14:03 5:00:00 
2011-11-06 15:14:03 6:00:00 
2011-11-07 15:14:03 6:00:00 
... 
2011-12-29 15:14:03 6:00:00 
2011-12-30 15:14:03 6:00:00 

日時モジュールは、自分のローカルタイムゾーンとUTCとの間の時間差だけでなく、夏時間の開始と終了も認識しているようです。これは同様の質問にthis answerと矛盾するようです。私は結論として間違っていますか?そうでない場合は、OS/datetimeモジュールからこのタイムゾーン情報を取得するにはどうすればよいですか?

答えて

0

チェックアウトdatetime docs

要するに、日時オブジェクトと時間オブジェクトにはオプションのタイムゾーン属性tzinfoがあり、これは抽象的なtzinfoクラスのサブクラスのインスタンスに設定できます。

これらのtzinfoオブジェクトは、UTC時刻からのオフセット、タイムゾーン名、夏時間が有効かどうかの情報を取得します。 datetimeモジュールによって指定された具体的なtzinfoクラスtimezoneクラスは1つのみです。

タイムゾーンクラスは、UTCからの固定オフセット(UTC自体または北アメリカのESTとEDTタイムゾーンなど)を持つ単純なタイムゾーンを表すことができます。

+0

私の例では、tzinfoまたはtimezoneクラスを呼び出すことはありません。私が作成するdatetimeオブジェクトはすべてnaiveです。だから、datetime.datetime.utcfromtimestampは、ローカルのものとは異なるdatetimeオブジェクトを正しく返すことによって、タイムゾーンを認識しているかのように機能しますか? –

+0

ドキュメント内のdatetimeオブジェクトの説明をチェックし、datetime.fromtimestamp()関数を実行します[引数リストを確認する] –

関連する問題