我試圖將tzinfo應用於日期時間對象。Python日期時間和tzinfo對象(改變分鐘而不是幾小時)
In [1]: from datetime import datetime
In [2]: import pytz
In [3]: london = pytz.timezone("Europe/London")
In [4]: london
Out[5]: <DstTzInfo 'Europe/London' LMT-1 day, 23:59:00 STD>
In [6]: localized_date_object = datetime(2016, 1, 1, 11, 30, 0, 5000, london)
In [7]: localized_date_object
Out[8]: datetime.datetime(2016, 1, 1, 11, 30, 0, 5000, tzinfo=<DstTzInfo 'Europe/London' LMT-1 day, 23:59:00 STD>)
In [9]: utc_date_object = localized_date_object.astimezone(pytz.utc)
In [10]: utc_date_object
Out[11]: datetime.datetime(2016, 1, 1, 11, 31, 0, 5000, tzinfo=<UTC>)
In [16]: paris = pytz.timezone("Europe/Paris")
In [17]: localized_date_object = datetime(2016, 1, 1, 11, 30, 0, 5000, paris)
In [18]: utc_date_object = localized_date_object.astimezone(pytz.utc)
In [19]: utc_date_object
Out[19]: datetime.datetime(2016, 1, 1, 11, 21, 0, 5000, tzinfo=<UTC>)
正如您所看到的,它將增量應用於分鐘而不是小時。
有人可以解釋我在這裏做錯了嗎?
謝謝你吉日。所以對於倫敦來說,冬天是UTC,夏天是BST。 – Sebabouche
夏季法國的CEST;) – Sebabouche
@Sebabouche這不是爲您的城市確定正確時區的問題;-)當您在某處存儲時間時,還應該存儲相關時區信息(CET或CEST)。 IMO的最佳做法是以UTC格式存儲所有內容,並將其轉換爲「用戶」時區。從UTC到歐洲/巴黎的BTW轉換完美無缺,請參閱更新答案。 – Jiri