Python中的datetime对象默认为时区。我认为这意味着如果你构建一个如下所示的datetime对象,你总是得到0(但不是):
from datetime import datetime
print(datetime(1970, 1, 1).timestamp())
# -32400.0 on my machine
如您所见,日期时间对象datetime(1970, 1, 1)
明显受到我当地时区的影响。
那么," timezone naive"和"时区感知"实际上意味着我觉得我错过了一些非常基本的东西。
答案 0 :(得分:2)
时区天真的物品并不意味着它们不受时区的影响,只是因为它们没有足够的信息来区分时间所指的位置。从datetime documentation开始,它说:
一个天真的对象没有足够的信息来明确地相对于其他日期/时间对象定位自己。天真物体是代表协调世界时(UTC),当地时间还是其他某个时区的时间完全取决于程序,就像程序一样,特定数字是代表米,英里还是质量。天真的物体易于理解和使用,代价是忽略了现实的某些方面。
这意味着初始化时间可能取决于时区,但之后您无法区分来自哪个时区。另一方面,时区感知,您将能够追溯到特定时间创建的时区和当地原因(日光节省等),以便您可以将其与其他时区感知对象进行比较。