Python 获取不同时区的当前时间

更新日期: 2025-05-07 阅读次数: 239 字数: 216 分类: Python

需求背景

需要给处于不同时区的用户,显示不同的当前时间。

如果直接使用 datetime.now() 返回的只是服务器的时间,无法满足不同时区用户的需求。

解决方法 ZoneInfo

参考:

https://docs.python.org/3/library/zoneinfo.html

从官方文档可看到,python 3.9 开始内置了这个库。用法:

Python 3.12.3 (main, Feb  4 2025, 14:48:35) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import datetime
>>> from zoneinfo import ZoneInfo
>>>
>>> timezone = ZoneInfo("Asia/Shanghai")
>>> now = datetime.now(timezone)
>>> print(now)
2025-05-07 22:04:43.467295+08:00
>>>
>>> timezone = ZoneInfo("America/New_York")
>>> now2 = datetime.now(timezone)
>>> print(now2)
2025-05-07 10:05:42.687649-04:00
>>>
>>> print(datetime.now())
2025-05-07 22:06:53.280776
>>>

定义目标时区(如 'Asia/Shanghai', 'America/New_York', 'Europe/London'),传入 ZoneInfo 即可。

而且这种用法,不会影响 datetime.now() 的值,非常方便。

微信关注我哦 👍

大象工具微信公众号

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式