2012-04-02 4 views
0

今日この問題が発生しましたが、説明がありません。datetimeオブジェクトをタイムスタンプとバックに変換すると、別の時刻になります

私はPythonのdatetimeオブジェクトを持っている:

私の理解に4時間でUTCからのオフセット時間帯で18時半で、
dt = datetime.datetime(2012, 3, 31, 18, 30, 48, tzinfo=<FixedOffset '-04:00'>) 

。 私は、それはそうのようにタイムスタンプに変換してみました:

epo = time.mktime(dt.timetuple()) and get back 1333247448.0. 

しかし、私は確信して、それは私が戻って

datetime.datetime(2012, 3, 31, 19, 30, 48) 
を取得した日付

time.datetime.fromtimestring(epo), 

を使用して正しいです作ってそれをバックに変換しようとすると、

時刻が19ではなく18であることに注意してください。

誰かがそれをやっている理由を教えてもらえますか?それ?

+0

夏時間の

time.localtime(epo) 

を使用してみてください? –

+0

'epo'を確認してください:' date -d @ 1333247448 -u'は 'Sun Apr 1 02:30:48 UTC 2012'ですか? –

+0

夏時間を完全に忘れてしまった。 – Lukich

答えて