在Python 3.x中,我想捕获当前时间及其时区,然后将其转换为Unix时间戳并发送到服务器。
我尝试了各种库,例如pytz,arrow,moment,pendulum,但是我不确定如何处理夏令时(DST)。目前,我正在使用time.tzname
来获取时区信息,但是它特别显示了DST中的印度。实际上,印度从不遵循夏令时。
答案 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]