【问题标题】:How to convert a naive time to UTC time in python?如何在python中将天真的时间转换为UTC时间?
【发布时间】:2021-10-10 10:05:45
【问题描述】:

如何在 python 中将此天真的时间更改为 UTC 时间

时间是2021-08-05T08:32:47.362000Z

st= "2021-08-05T08:32:47.362000Z"

dt = datetime.strptime(st,"%Y-%m-%d %H:%M:%S.%fZ")

我不知道如何在python中解析这个时间。上面给出的代码是我知道我这次不知道解析的。

所以这个时间是从 Django 数据库中获取的,我插入的是 UTC 时间,结果得到了上述时间。

问题是我需要获取 UTC 时间。

【问题讨论】:

标签: python python-3.x date datetime time


【解决方案1】:

你缺少'T':

dt = datetime.strptime(st,"%Y-%m-%dT%H:%M:%S.%fZ")

您可以根据需要使用 pytz 修改时区。 here

【讨论】:

  • 不返回感知日期时间
  • OP 想要“UTC 时间”,即应该将“Z”(祖鲁时间)解析为 UTC(带有 tzinfo=timezone.utc 的日期时间对象)。您的解析指令只是通过使用文字 Z 来忽略它。
  • ...由于 OP 提出有关当前时区问题的方式存在不确定性(他稍后添加),我为 OP 提供了一种方法,其中 OP 可以实现这一目标以及更多,在帖子链接。与您的方法不同,但没有错?那么为什么要投反对票呢?
  • 因为我认为在这里使用天真的日期时间是不好的做法,因为它是在 Python 中使用的 本地时间,而不是 UTC(与许多其他语言一样)。这是在 Python 中使用 datetime 时的一个陷阱,因此不应该特别推荐给刚接触该语言的人。
  • 问:如何在 python 中将 naive time 转换为 UTC 时间?您遇到的问题似乎与提出问题的方式有关,而不是我的回答
猜你喜欢
  • 1970-01-01
  • 2021-10-10
  • 1970-01-01
  • 2017-04-27
  • 2013-12-04
  • 1970-01-01
  • 2011-05-02
  • 2020-10-25
相关资源
最近更新 更多