datetime + pytz:跨时区转换时间失败

时间:2017-03-17 16:21:31

标签: python datetime pytz

我不确定以下代码片段出现了什么问题:

from datetime import datetime
import pytz
time_us_pacific = datetime(2017, 3, 16, 14, 30).replace(tzinfo=pytz.timezone("America/Los_Angeles"))
time_india = time_us_pacific.astimezone(pytz.timezone("Asia/Kolkata"))
print(time_india)
# Actual: 2017-03-17 03:53:00+05:30
# Expected: 2017-03-17 03:00:00+05:30

# Picking a date before DST switch:
time_us_pacific = datetime(2017, 2, 16, 14, 30).replace(tzinfo=pytz.timezone("America/Los_Angeles"))
time_india = time_us_pacific.astimezone(pytz.timezone("Asia/Kolkata"))
print(time_india)
# Actual: 2017-03-17 03:53:00+05:30
# Expected: 2017-03-17 04:00:00+05:30

似乎有两个问题:

  1. pytz时区不计入DST
  2. 印度时区似乎 更喜欢与印度人相比更为神秘的当地平均时间(LMT) 标准时间
  3. 我的应用程序需要对事件进行一些严格的基于时区的会计处理,并且不能搞砸了。我的问题是:

    1. 我是否错误地使用了Python datetimepytz
    2. 我应该使用其他东西代替pytz吗?
    3. 感谢您提供任何帮助或见解。

0 个答案:

没有答案