首先执行以下代码:importtimefromdatetimeimportdatetime,timezone,timedeltaprint(time.time())print(datetime.utcnow().timestamp())print(datetime.now(timezone.utc).timestamp())print(datetime.now(timezone(timedelta(hours=2))).timestamp())====output====1626687759.90810821626658959.9081081626687759.9081081626687759.908108发现,输出只有utcnow()不同。对比一下时差,可以发现时差刚好是8小时,而我的电脑所在的时区是东八区。原因是正如utcnow()文档所指出的那样,它返回naivetime,并且一个Naivedatetime实例被认为代表本地时间,因此当使用now(None)时,它的时间戳将完全偏离计算机的时区。这种奇怪的处理有历史原因。在从Python2到Python3的过渡过程中,datetime.timezone在3.2版本中被设计为一个新特性,因此有一个更加清晰明确的标记日期。时区。旧接口utcnow()保留了原来的处理方式。新时区模型的处理方式兼容Python2:====Python2====>>>fromdatetimeimportdatetime>>>fromdateutilimporttz>>>datetime(2021,5,1).astimezone(tz.UTC)追溯(最近调用最后一次):文件“
