kol*_*pto 7 python time datetime pytz python-2.7
我正在比较time
具有不同时区的两个对象,看起来它实际上忽略了时区,只测试小时/分钟/秒组件.
让我们创建两个time
对象:
from datetime import time
import pytz
CET = pytz.timezone('CET')
Japan = pytz.timezone('Japan')
t1 = time(1,2,3, tzinfo=CET)
t2 = time(1,2,3, tzinfo=Japan)
Run Code Online (Sandbox Code Playgroud)
打印它们,我们发现它们非常不同:
datetime.time(1, 2, 3, tzinfo=<DstTzInfo 'CET' CET+1:00:00 STD>)
datetime.time(1, 2, 3, tzinfo=<DstTzInfo 'Japan' JST+9:00:00 STD>)
Run Code Online (Sandbox Code Playgroud)
现在,让我们比较一下:
t1 == t2
#-> True
Run Code Online (Sandbox Code Playgroud)
恩,什么?Python如何将它们视为平等?
根据https://docs.python.org/2/library/datetime.html#datetime.tzinfo,你的两个时间对象都是"天真的" :
一个
time
对象牛逼意识到,如果t.tzinfo
不None
和t.tzinfo.utcoffset(None)
不返回None
.否则,牛逼是幼稚的.
print(t1.tzinfo, t1.tzinfo.utcoffset(None))
print(t2.tzinfo, t2.tzinfo.utcoffset(None))
Run Code Online (Sandbox Code Playgroud)
给我们:
(<DstTzInfo 'CET' CET+1:00:00 STD>, None)
(<DstTzInfo 'Japan' JST+9:00:00 STD>, None)
Run Code Online (Sandbox Code Playgroud)
https://docs.python.org/2/library/datetime.html#module-datetime
一个天真的对象不包含足够的信息来明确地相对于其他日期/时间对象定位自己.
换句话说:对象没有日期,因此无法确定夏令时是否适用.他们很暧昧,t.utcoffset()
任何一个人都会回来None
.这使得时区在比较中完全被忽略,因为它们实际上毫无意义.
归档时间: |
|
查看次数: |
993 次 |
最近记录: |