我有一个天真的约会时间,我想推广它包括系统时区。我看到很多例子,其中时区是先验已知的,而日期时间是针对它的。如果我事先不知道,如何获得当地时区?
local_tz = ???
dt = local_tz.localize(naive_time)
您可以通过以下方式获得适当的local_tz
:
import time
import pytz
local_tz = pytz.timezone(time.tzname[0])
编辑:似乎time.tzname[0]
并不总是与pytz.all_timezones
中找到的名称相对应的名称
最简单的解决方案是使用tzlocal
软件包,它使用许多技巧从系统中查找本地时区,也可以代替pytz进行本地化:
import tzlocal
local_tz = tzlocal.get_localzone()
local_tz.localize(naive_time)
这是我设法得到的接近:
local_tz = dateutil.tz.tzlocal()
timestamp = timestamp.replace(tzinfo=local_tz)
不幸的是local_tz没有localize()方法所以我使用了replace()。