2017-09-05 17 views
-1

我不知道如何使用datetime.tzinfo模塊。我必須將UTC的日期時間數據轉換爲本地時區,如果我檢索'+2'(表示gmt + 2),我該如何將其轉換爲tzinfo對象?如何在Python中使用datetime.tzinfo?

此外,是否可以將UTC自動轉換爲本地時區並自動應用夏令時?如何設置在dst期間自動減去一小時只有

回答

1

Python並沒有真正實現好時區。根據documentation,tzinfo只是一個抽象類,意圖由用戶來實現。

我建議第三方pytz模塊處理時區。

0

您可以使用tzoffset來設置您檢索的時區偏移量。例如,如果你得到「+2」,解析字符串,以便n = 2

from dateutil.tz import tzoffset 

utc_dt = your_datetime.replace(tzinfo=tzoffset("UTC+0",0)) 
local_dt = utc_dt.astimezone(tzoffset("UTC+{}".format(n), n*60*60)) 

變量utc_dt使用只是爲了確保你原來的日期時間有一個正確的UTC時區的屬性,否則將無法工作。然後,您可以設置目標當地時間的偏移量,以秒爲單位。

我不確定是否可以應用DST知道UTC/GMT偏移量,因爲某個時區的某些國家可能不會應用它。如果您具有「歐洲/維也納」的確切本地化,則可以使用pytz庫和datetime.dst()方法來確定是否減去一小時。

+0

非常感謝。我會試試看。 –