【问题标题】:Pytz Python Timezone Conversion Not WorkingPytz Python时区转换不起作用
【发布时间】:2015-12-09 23:18:24
【问题描述】:

我正在尝试将“欧洲/伦敦”pytz 时区转换为 UTC,但没有成功:

>>>tz=pytz.timezone("Europe/London")
>>>date=datetime.datetime(2015,1,1,4,4)
>>>tz.normalize(tz.localize(date)).astimezone(pytz.utc)
datetime.datetime(2015, 1, 1, 4, 4, tzinfo=<UTC>)
>>>tz.localize(date)
datetime.datetime(2015, 1, 1, 4, 4, tzinfo=<DstTzInfo 'Europe/London'GMT0:00:00 STD>)

这完全是错误的,为什么应该是 GMT+1 的线在 GMT-0 的正上方。由于夏令时,伦敦时间目前比 UTC 早一小时,但代码没有产生这个。

>>>tz.normalize(tz.localize(date)).astimezone(pytz.utc) #should produce:
datetime.datetime(2015, 1, 1, 3, 4, tzinfo=<UTC>)

【问题讨论】:

    标签: python datetime utc pytz


    【解决方案1】:

    你不应该期待一月份在伦敦的北半球的夏季时间。

    pytz-2015.4 版本产生相同(正确)的结果:

    >>> from datetime import datetime
    >>> import pytz
    >>> d = datetime(2015, 1, 1, 4, 4)
    >>> tz = pytz.timezone('Europe/London')
    >>> tz.localize(d, is_dst=None).astimezone(pytz.utc)
    datetime.datetime(2015, 1, 1, 4, 4, tzinfo=<UTC>)
    >>> tz.localize(d, is_dst=None)
    datetime.datetime(2015, 1, 1, 4, 4, tzinfo=<DstTzInfo 'Europe/London' GMT0:00:00 STD>)
    

    我系统上的zdump同意它:

    $ zdump -v Europe/London | grep 2015
    Europe/London  Sun Mar 29 00:59:59 2015 UT = Sun Mar 29 00:59:59 2015 GMT isdst=0 gmtoff=0
    Europe/London  Sun Mar 29 01:00:00 2015 UT = Sun Mar 29 02:00:00 2015 BST isdst=1 gmtoff=3600
    Europe/London  Sun Oct 25 00:59:59 2015 UT = Sun Oct 25 01:59:59 2015 BST isdst=1 gmtoff=3600
    Europe/London  Sun Oct 25 01:00:00 2015 UT = Sun Oct 25 01:00:00 2015 GMT isdst=0 gmtoff=0
    

    即,直到 2015 年 3 月 29 日,伦敦的 UTC 偏移量为零。

    tz 数据库本身同意:Europe/London uses EU rules for DST transitions since 1996: the summer time doesn't start until the last Sunday in March

    【讨论】:

    • 您不应该期待北半球一月份的夏季时间吗?还好不是一月。 timeanddate.com/time/zone/uk/london 表明伦敦现在是 GMT+1。显然 pytz Europe/London 并没有像人们想象的那样给出正确的伦敦时间。
    • @Evan:你知道2015-01-01是1月份吗?
    • 哇,有道理!
    • 很好的解释!谢谢! @jfs
    猜你喜欢
    • 2011-07-02
    • 2018-01-03
    • 2015-06-13
    • 2016-02-05
    • 2017-05-13
    • 2013-08-26
    • 2018-03-03
    • 2012-08-29
    • 2015-02-16
    相关资源
    最近更新 更多