18

可能重复:
Python 日期时间对象显示错误的时区偏移

import pytz, datetime

 pytz.timezone("Asia/Calcutta")

打印以下内容:

< DstTzInfo 'Asia/Calcutta' HMT+5:53:00 STD >

为什么不是 05:30?我在时区美国/洛杉矶。

4

1 回答 1

30

时区多年来不断变化。根据http://www.prokerala.com/travel/timezones/Asia/Kolkata?mode=history,该区域的原始偏移量为 5.88888888889 小时,即 5 小时 53 分钟。pytz将区域分配给实际日期后,将使用适当的偏移量和命名法。

>>> tz = pytz.timezone("Asia/Calcutta")
>>> tz
<DstTzInfo 'Asia/Calcutta' HMT+5:53:00 STD>
>>> tz.localize(datetime.datetime(1901, 7, 10, 12, 0))
datetime.datetime(1901, 7, 10, 12, 0, tzinfo=<DstTzInfo 'Asia/Calcutta' HMT+5:53:00 STD>)
>>> tz.localize(datetime.datetime(2012, 7, 10, 12, 0))
datetime.datetime(2012, 7, 10, 12, 0, tzinfo=<DstTzInfo 'Asia/Calcutta' IST+5:30:00 STD>)
于 2012-07-11T22:38:15.537 回答