gpt4 book ai didi

Python在正确的时区获取当前时间

转载 作者:IT老高 更新时间:2023-10-28 20:32:48 27 4
gpt4 key购买 nike

我现在用

import datetime
print(datetime.datetime.now().strftime("%X"))

将当前时间显示为字符串。
问题是,我的电脑运行在 Europe/Berlin 时区,这里不考虑 +2 到 UTC 的偏移量。而不是 19:22:26 它应该显示 21:22:26也不同于我在这里找到的其他答案,我不通过调用来存储它

datetime.datetime(2014, 7, 10, 18, 44, 59, 193982, tzinfo=<UTC>)

但是

datetime.datetime.now()

所以我尝试了以下方法(但失败了):

>>> from pytz import timezone
>>> datetime.datetime.now().astimezone(timezone('Europe/Berlin'))
ValueError: astimezone() cannot be applied to a naive datetime


编辑:

回答

无法作为答案发布,因为此问题已标记为已关闭

我遇到此问题的服务器不再存在。不管怎样,这里还有一些值得检查的地方:

  • 您的服务器/系统的时区设置是否正确?
    • VM 或 docker 容器可能与主机不同步,这值得检查。
  • 那台计算机上的时间是否正确?您不是在更改时区后 +2 小时结束了吗?

最佳答案

获取本地时区的当前时间作为一个简单的日期时间对象:

from datetime import datetime
naive_dt = datetime.now()

如果它没有返回预期的时间,则表示您的计算机配置错误。你应该先修复它(它与 Python 无关)。

以 UTC 格式获取当前时间作为原始日期时间对象:

naive_utc_dt = datetime.utcnow()

在 Python 3.3+ 中将当前时间作为可感知的日期时间对象获取:

from datetime import datetime, timezone

utc_dt = datetime.now(timezone.utc) # UTC time
dt = utc_dt.astimezone() # local time

从 tz 数据库中获取给定时区的当前时间:

import pytz

tz = pytz.timezone('Europe/Berlin')
berlin_now = datetime.now(tz)

它在 DST 转换期间工作。如果时区在过去有不同的 UTC 偏移量,它就可以工作,即,即使时区在不同时间对应于多个 tzinfo 对象,它也可以工作。

关于Python在正确的时区获取当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25837452/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com