我手头有一个天真的日期时间,我想推广它以包含系统时区。我看到很多例子,其中时区是先验已知的,而日期时间是针对它的。如果我事先不知道,如何获得当地时区?
local_tz = ???
dt = local_tz.localize(naive_time)
答案 0 :(得分:1)
您可以通过以下方式获取相应的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)
答案 1 :(得分:0)
这就像我设法得到的那样接近:
local_tz = dateutil.tz.tzlocal()
timestamp = timestamp.replace(tzinfo=local_tz)
不幸的是local_tz没有localize()方法所以我使用了replace()。