正确值:
>>> pytz.timezone('Asia/Tehran').utcoffset(datetime(2013, 1, 1)).total_seconds()/3600.0
3.5
>>> pytz.timezone('Asia/Tehran').utcoffset(datetime(2013, 1, 1)).total_seconds()
12600.0
错误值:
^{pr2}$我想知道如果_utcoffset
属性被用于utcoffset()
方法中,为什么该方法在属性错误的情况下工作。
不管怎么说,看起来像个虫子。
如果将Asia/Tehran
替换为Iran
,则不会发生任何变化
>>> print pytz.VERSION
2012c
操作系统:Linux Mint 15(奥利维亚)
使用Python2.7
让我们看看这是怎么回事:
这意味着时区用LMT表示,也就是太阳时。这就是为什么您看到utcoffset为12360—这里没有错误,它只是使用不同的引用计算的。在
如果你这么做了:
^{pr2}$localize
方法使表示切换到该日期和地点使用的正确时区,即IRST,utcoffset为12600秒。在这正是tzinfo对象的^{} method 所做的-它本地化给定的datetime对象并返回它的utcoffset。在
同样,如果您现在这样做:
您将得到以IRDT表示的日期时间,因为当前夏令时在该时区有效。在
相关问题 更多 >
编程相关推荐