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

Raj*_*jat 11 python datetime pytz

可能重复:
Python datetime对象显示错误的时区偏移量

import pytz, datetime

 pytz.timezone("Asia/Calcutta")
Run Code Online (Sandbox Code Playgroud)

打印以下内容:

< DstTzInfo 'Asia/Calcutta' HMT+5:53:00 STD >
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*som 24

多年来,时区发生了变化.根据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>)
Run Code Online (Sandbox Code Playgroud)

  • 我相信更疯狂的抵消更接近现实:加尔各答经度:88.369度.现在得到时间偏移:(88.369/180)x12 = 5.89,大约翻译为5小时53分钟.当然,现实必定让每个人都感到生活困难,因此现在已经过了很多. (3认同)
  • 这并不是法律实际规定的时间偏移。它只是该区域所覆盖区域的[当地时间 (LMT)](https://en.wikipedia.org/wiki/Local_mean_time) 的反映。您可以在 [此处](https://github.com/eggert/tz/blob/2017b/asia#L891) 的 tz 源数据中看到这一点。 (2认同)