pytz.timezone显示亚洲/加尔各答奇怪的结果?

时间:2012-07-11 22:03:27

标签: python datetime pytz

  

可能重复:
  Python datetime object show wrong timezone offset

import pytz, datetime

 pytz.timezone("Asia/Calcutta")

打印以下内容:

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

为什么不是05:30呢?我在时区America / Los_Angeles。

1 个答案:

答案 0 :(得分:23)

多年来,时区发生了变化。根据{{​​3}},该区域的原始偏移量为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>)