我有一個字串日期,它已經包含適當的時區偏移量 -08:00,我可以將其轉換為 datetime 變數,但使用 UTC 時區格式:
from datetime import datetime
from pytz import timezone
import pytz
str_date = '2020-01-01T00:00:00-08:00'#
specific_date_format = "%Y-%m-%d %H:%M:%S %Z"
my_date = datetime.fromisoformat(str_date)
print(my_date.strftime(specific_date_format))
_____________________________________________
Output
>> 2020-01-01 00:00:00 UTC-08:00
我需要的格式是
2020-01-01 00:00:00 PST
不確定如何將 UTC-08:00 轉換為 PST。
嘗試使用 pytz 并看到用預定義的“America/Los_Angeles”替換時區的建議,但我需要代碼來檢測小時偏移 UTC-08:00 對應于“America/Los_Angeles”時區并將其轉換為這樣。
uj5u.com熱心網友回復:
由于您的輸入已經包含 UTC 偏移量,您可以決議 iso 格式字串以了解日期時間(tzinfo 集)并使用astimezone設定正確的時區。使用 pytz:
from datetime import datetime
from pytz import timezone # Python 3.9: zoneinfo (standard lib)
str_date = '2020-01-01T00:00:00-08:00'
# to datetime
dt = datetime.fromisoformat(str_date)
# to tz
dt_tz = dt.astimezone(timezone("America/Los_Angeles"))
print(dt_tz)
# 2020-01-01 00:00:00-08:00
print(repr(dt_tz))
# datetime.datetime(2020, 1, 1, 0, 0, tzinfo=<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>)
print(dt_tz.strftime("%a, %d %b %Y %H:%M:%S %Z"))
# Wed, 01 Jan 2020 00:00:00 PST
另請參閱:顯示不同時區的時間- 例如Python 3.9/zoneinfo 示例的此答案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/409561.html
標籤:
