将天真的日期时间提升为系统时区

时间:2018-02-28 22:01:20

标签: python datetime

我手头有一个天真的日期时间,我想推广它以包含系统时区。我看到很多例子,其中时区是先验已知的,而日期时间是针对它的。如果我事先不知道,如何获得当地时区?

local_tz = ???
dt = local_tz.localize(naive_time)

2 个答案:

答案 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()。