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

 年轮033 发布于 2022-12-21 13:39

现在我用

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=)

datetime.datetime.now()

所以我尝试了(并且失败了)以下内容:

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


编辑

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

我遇到此问题的服务器不再存在.无论如何,这里有一些值得检查的事情:

您的服务器/系统的时区是否设置正确?

docker容器可能与主机不同步,值得检查.

时间是否正确?更改时区后,您最终没有达到+2小时?

jfs.. 109

要将本地时区中的当前时间作为天真的日期时间对象获取:

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对象,它也可以工作.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有