我有一個日期時間作爲字符串(2016-12-31 23:59
),我知道它是用UTC定義的。我現在想用Python獲取timedelta。我正在執行此操作的計算機通常位於CEST時區(Europe/Amsterdam
),但這可能並非總是如此,因此我不想在代碼中對此時區進行硬編碼。如何獲取UTC中的日期時間和Python中的utcnow之間的差異
對於本地時區,這將極大的工作:
date_str = '2016-12-31 23:59'
print datetime.now() - datetime.strptime(date_str, '%Y-%m-%d %H:%M')
這顯然是不正確的,雖然,但將其更改爲使用utcnow()
也是不正確:
print datetime.utcnow() - datetime.strptime(date_str, '%Y-%m-%d %H:%M')
這不起作用正確,因爲現在由strptime產生的日期時間在這個代碼運行的機器的時區中,而utcnow()是UTC。
我發現this SO answer,但假設你知道代碼運行的機器的時區,我不知道。
有沒有一種方法可以將UTC時區添加到我從datetime.strptime()
獲得的datetime
對象,以便我可以將其與utcnow()
進行比較?歡迎所有提示