2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
您正在尋找%z:
>>> datetime.strptime('2020-10-23T11:50:19+00:00', '%Y-%m-%dT%H:%M:%S%z') datetime.datetime(2020, 10, 23, 11, 50, 19, tzinfo=datetime.timezone.utc)
請(qǐng)注意一些 Python 版本兼容性說明:
版本 3.7 中的更改:當(dāng)
%z
向方法提供指令時(shí)strptime()
,UTC 偏移量可以使用冒號(hào)作為小時(shí)、分鐘和秒之間的分隔符。例如,'+01:00:00'
將被解析為一小時(shí)的偏移量。此外,提供'Z'
與 相同'+00:00'
。
更強(qiáng)大的方法,它不是strptime
,但自 Python 3.7 以來它仍然在 stdlib 中:
>>> datetime.fromisoformat('2020-10-23T11:50:19+00:00') datetime.datetime(2020, 10, 23, 11, 50, 19, tzinfo=datetime.timezone.utc)
如文檔所述,該函數(shù)支持以下格式的字符串:
YYYY-MM-DD[*HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]]
其中 * 可以匹配任何單個(gè)字符(不僅僅是 T)。

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
該dateutil.parser函數(shù)將解析該時(shí)區(qū)格式:
from dateutil.parser import parse
dt = parse('2020-10-23T11:50:19+00:00')
print(dt.date())
print(dt.time())
print(dt.tzinfo)
結(jié)果:
2020-10-23
11:50:19
tzutc()
如果您需要的話,您可以將單獨(dú)的date,time和tzinfo對(duì)象組合成 a datetime,如下所示:
dt = datetime.combine(dt.date(), dt.time(), tzinfo=dt.tzinfo)
print(dt)
結(jié)果:
2020-10-23 11:50:19+00:00
添加回答
舉報(bào)