【发布时间】:2022-11-19 00:29:04
【问题描述】:
此字符串中的 2022-02-18T00:00:00.000Z 是这次是 07:00 PM 的信息,这是东部时间 (ET),这看起来是正确的,因为 ET 比 UTC 晚 5 小时。我们如何(a)先从字符串转换为(日期时间?,时间戳?),然后将得到的时间对象转换为07:00 PM?尝试了什么:
from datetime import datetime
datetime.strptime('2022-02-18T00:00:00.000Z', '%Y-%m-%dT%H:%M:%S.%f')
...引发错误time data '2022-02-18T00:00:00.000Z' does not match format '%Y-%m-%d %H:%M:%S.%f'。这里做错了什么?
【问题讨论】:
-
你少了一个 Z。
'%Y-%m-%dT%H:%M:%S.%fZ' -
您还可以通过执行以下操作在解析中包含时区:
'%Y-%m-%dT%H:%M:%S.%f%z'这将为您提供输出:datetime.datetime(2022, 2, 18, 0, 0, tzinfo=datetime.timezone.utc)。 -
这回答了你的问题了吗? How do I parse an ISO 8601-formatted date?
-
它并没有让我一路走到
07:00 PM -
不要使用文字 Z !使用
%z。 Z忽略时区/UTC