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

问题描述 投票:1回答:2

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

local_tz = ???
dt = local_tz.localize(naive_time)
python datetime
2个回答
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)

0
投票

这是我设法得到的接近:

local_tz = dateutil.tz.tzlocal()
timestamp = timestamp.replace(tzinfo=local_tz)

不幸的是local_tz没有localize()方法所以我使用了replace()。

© www.soinside.com 2019 - 2024. All rights reserved.