【发布时间】:2021-07-18 01:54:58
【问题描述】:
我尝试打印确切的 UTC 时间,然后尝试通过首先获取本地时间然后将其转换为 UTC 时间来打印 UTC 时间,但它们有 11 分钟的差异
为什么会发生这种情况以及如何解决这个问题,以便我获得正确的 UTC 时间,当我直接获得 UTC 时间时打印出来
from datetime import datetime, tzinfo
import tzlocal
import pytz
local_time =datetime.now()
tz = tzlocal.get_localzone()
print(tz)
utc_time = local_time.replace(tzinfo=tz).astimezone(pytz.utc)
print(utc_time)
correct_utc =datetime.utcnow()
print(correct_utc)
输出
Asia/Colombo
2021-07-18 01:54:31.442555+00:00
2021-07-18 01:43:31.619536
我必须制作一个程序,该程序采用日期时间字符串,然后将它们转换为日期时间对象,然后将它们转换为 utc,因此使用 astimezone 将毫无意义,因为程序将在云中运行,因此它不知道它拥有的时区转换自
【问题讨论】:
-
utc_time = local_time.astimezone(pytz.utc)给出了正确的值,所以我认为它与替换有关。 -
@henry-ecker 这不是我想要的,因为在我的目的中,我会给程序一些字符串,它会将其转换为 datetime 对象,然后将它们转换为 utc 时间
-
如果您的服务器和客户端位于不同的时区,您将别无选择,只能将时区从客户端发送到服务器。