我是 Python 中 datetime 的新手,我有一個這種格式的日期字串'05/18/2022 12:00:55'。還有一個像這樣的單獨的偏移字串'-06:00'。我正在嘗試制作一個基于偏移字串的時區感知的最終日期時間物件。預期結果2022-05-18 06:00:55-06:00
嘗試 1 - 將偏移字串添加到日期時間字串并轉換為日期時間物件。這導致2022-05-18 12:00:55-06:00而不是2022-05-18 06:00:55-06:00
date_string = '05/18/2022 12:00:55'
timezone_string = '-06:00'
date_string_2 = datetime.strptime(date_string timezone_string, '%m/%d/%Y %H:%M:%S%z')
print(date_string_2)
嘗試 2 - 使用 tzinfo 屬性,但這會引發錯誤
date_string = '05/18/2022 12:00:55'
timezone_string = '-06:00'
date_string_2 = datetime.strptime(date_string, '%m/%d/%Y %H:%M:%S%z')
date_string_2.replace(tzinfo=timezone_string)
print(date_string_2)
任何人都可以幫助和/或指出我正確的方向。謝謝你。
uj5u.com熱心網友回復:
基本上,您需要將 date_string 決議為 datetime 物件,將 tzinfo 替換為 UTC,然后將 astimezone 轉換為 UTC-6。為此,您也將 timezone_string 決議為 datetime 物件,但只需使用其 tzinfo。
前任:
from datetime import datetime, timezone
date_string = "05/18/2022 12:00:55"
timezone_string = "-06:00"
dtobj_utc = datetime.strptime(date_string, "%m/%d/%Y %H:%M:%S").replace(tzinfo=timezone.utc)
dtobj_tz = dtobj_utc.astimezone(datetime.strptime(timezone_string, "%z").tzinfo)
print(dtobj_tz.isoformat(" ", timespec="seconds"))
# 2022-05-18 06:00:55-06:00
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480127.html
