【发布时间】:2014-11-08 08:30:13
【问题描述】:
我现在用
import datetime
print(datetime.datetime.now().strftime("%X"))
将当前时间显示为字符串。
问题是,我的电脑运行在Europe/Berlin 时区,这里没有考虑到+2 到UTC 的偏移量。
它应该显示 21:22:26 而不是 19: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 小时结束了吗?
【问题讨论】:
-
你得到了什么输出?
-
@champion-runner 上面我已经导入的那个?
-
这是另一个问题的副本,尽管只有在这里,我找到了普通的 pytz 解决方案。由于季节性时移,另一个答案只是让我确信根本不使用任何本地时间和 pytz 。但是对于真正只想显示该地点当前时间的人来说,为什么不在这里使用这种 pytz 方式呢?重新打开?