Python 日期时间从一个本地时区到另一个时区的转换(+奖励 DST)



我很难理解为什么我会得到我得到的结果。

我想尝试的:

  1. 采用两个时区,一个使用 DST,另一个不使用。 例如:罗马尼亚 (dst) 和委内瑞拉(无 dst)。

  2. 对于具有 dst 的时区,请创建两个日期时间。一个在 dst 的间隔中,另一个不在。罗马尼亚夏令时间隔(4-10/4 月至 10 月)。前任:

    from datetime import datetime
    from pytz import timezone
    tz1 = timezone('Europe/Bucharest')
    tz2 = timezone('America/Caracas')
    date1 = datetime(2016, 5, 5, 5, 0, 0, tzinfo=tz1)  # its in the dst interval (5 o'clock, summer - dst)
    date1 = datetime(2016, 12, 5, 5, 0, 0, tzinfo=tz1)  # isn't in the dst interval (5 o'clock, winter - no dst)
    x = date1.astimezone(tz2)
    y = date2.astimezone(tz2) 
    
  3. xy不应该有不同的时间吗?由于 date1 在 DST 间隔中,因此当日期时间不在 DST 间隔中时,5 点钟应表示与日期 2 中的 5 点钟不同的小时。

然而,xy转换为无 DST 时区时具有相同的小时。

感谢您提供的任何解释。

不能使用

datetime 构造函数来使用pytz时区,必须使用 localize

date1 = tz1.localize(datetime(2016, 5, 5, 5, 0, 0))
date2 = tz1.localize(datetime(2016, 12, 5, 5, 0, 0))

从文档中:

不幸的是,在许多时区使用标准日期时间构造函数的 tzinfo 参数"不适用于"pytz。

相关内容

  • 没有找到相关文章