【问题标题】:In Python, how do I force "datetime.strptim" to use a timezone? [duplicate]在 Python 中,如何强制“datetime.strptime”使用时区? [复制]
【发布时间】:2019-08-29 22:10:04
【问题描述】:

我正在使用 Django 和 Python 3.7。我正在使用这种逻辑将一些字符串解析为日期...

created_on = datetime.strptime(created_on_txt, '%Y-%m-%dT%H:%M:%S+00:00')
print(created_on.tzinfo)

如何结合我想要为字符串解释的时区应该是 UTC 的事实?当我打印出“.tzinfo”时,它显示为“无”。我正在解析的一个例子是

2019-04-08T17:03:00+00:00

【问题讨论】:

  • 我认为直接解析+00:00会导致strptime忽略它。尝试使用%z%Z 格式说明符:docs.python.org/3/library/…
  • @quiet_laika,是的,它是“%z”

标签: django python-3.x datetime timezone


【解决方案1】:

Python 3.7,lucky you

created_on = datetime.fromisoformat('2019-04-08T17:03:00+00:00')
created_on.tzinfo
>>> datetime.timezone.utc

如果你坚持使用strptime()

created_on = datetime.strptime('2019-04-08T17:03:00+00:00', '%Y-%m-%dT%H:%M:%S%z')
created_on.tzinfo
>>> datetime.timezone.utc

这使用%z directive

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-25
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2012-02-23
    • 2022-06-21
    相关资源
    最近更新 更多