2017-07-03 91 views
4

我可能誤解tzinfo的目的,但我有一個DateTime對象dt我設法進入這種形式:datetime忽略tzinfo?

datetime.datetime(2017, 7, 2, 20, 0, tzinfo=tzoffset('PDT', -7))

我想代表從7月2日在上述日期2017年20 :00 PDT。

現在,我想將該時間轉換爲UTC,但是當我這樣做時,它會輸出July 2nd 2017 20:00 UTC的UTC時間戳,它不會應用7小時的差異。

例如:

>>> dt.timestamp() 
1499025607.0 

那就是:Sunday, July 2, 2017 8:00:07 PM

而且

>>> dt.isoformat() 
'2017-07-02T20:00:00-00:00:07' 

我已經試過

>>> dt.astimezone(pytz.UTC).timestamp() 
1499025607.0 

注意,是同樣的時間戳dt.timestamp()

+1

關鍵問題是:你如何做轉換? – fhossfel

+0

可能的解決方案https://stackoverflow.com/a/31977588/8150371 – Stack

+0

@fhossfel編輯 – K2xL

回答

2

根據dateutil docs,您對tzoffset()函數的參數是錯誤的。

tzinfo=dateutil.tz.tzoffset('PDT', -7) 

創建一個偏移量爲7秒的時區。

tzinfo=dateutil.tz.tzoffset('PDT', -7*60*60) 

創建一個偏移量爲7小時的時區。

+0

我覺得自己像一個白癡。謝謝 – K2xL