处理夏令时

时间:2019-08-08 12:39:40

标签: python-3.x time timezone

在Python 3.x中,我想捕获当前时间及其时区,然后将其转换为Unix时间戳并发送到服务器。

我尝试了各种库,例如pytzarrowmomentpendulum,但是我不确定如何处理夏令时(DST)。目前,我正在使用time.tzname来获取时区信息,但是它特别显示了DST中的印度。实际上,印度从不遵循夏令时。

2 个答案:

答案 0 :(得分:1)

pytz应该运行良好。您需要使用该库中的函数dst()来检查时区是否受夏时制影响。

https://medium.com/@nqbao/python-timezone-and-daylight-savings-e511a0093d0

从上面的链接:

>>> import pytz
>>> pst = pytz.timezone("US/Pacific")
>>> pst.localize(datetime(2017, 10, 1)).dst()
datetime.timedelta(0, 3600)
>>> pst.localize(datetime(2017, 12, 1)).dst()
datetime.timedelta(0)

了解偏移天真和偏移已知日期时间将使您的生活更加轻松。

答案 1 :(得分:0)

这有助于我使用 time.tzname

解决此问题
    if time.tzname[1] is None or time.tzname[0] == time.tzname[1]:
        timezone = time.localtime().tm_zone
            # no DST
            timezone = time.tzname[0]
        else:

            # we're in DST
            timezone = time.tzname[1]