如何让 python 获取操作系统时区更改?

Erl*_*ton 5 python timezone

在 python 的运行实例中,是否有一个函数可以调用来表示“嘿 python,刷新您对时区信息的了解”?假设我打开 python,然后更改 /etc/localtime 。如何让 python 更新到新时区?我的目标是不要弄乱 TZ 环境变量或直接引用 /etc/localtime 或使用任何特定于操作系统的命令。我也不想重新启动 python。这可能吗?

Erl*_*ton 5

我正在寻找的答案是time.tzset()

>>> time.tzname[time.daylight]
'CDT'
>>> #Use dpkg-reconfigure tzdata
...
>>> time.tzset()
>>> time.tzname[time.daylight]
'EDT'
>>> 
Run Code Online (Sandbox Code Playgroud)


小智 1

时间tzlocal

>>> from datetime import datetime
>>> from tzlocal import get_localzone
>>> tz = get_localzone()
>>> datetime.now(tz).tzinfo
<DstTzInfo 'Europe/Warsaw' CEST+2:00:00 DST>
Run Code Online (Sandbox Code Playgroud)