据我所知,自Unix纪元(1970-01-01 00:00:00 UTC)以来的秒数在全球各地应该是相同的,因为它被固定为UTC。
现在,如果你在一个时区内,有几个小时是+/-UTC,为什么这样做会得到不同的时间戳(在我的例子中是+2小时)
>>> datetime.datetime.utcnow().timestamp()
1523622844.637763
>>> datetime.datetime.now().timestamp()
1523630048.558158
如果你考虑到我运行第二行代码所花的时间,你会得出结论,两个时间戳之间存在7200秒(2小时)的差异。这些时间戳不应该是时区不知道的吗?
最佳答案
从docs开始:datetime.now()
:返回当前本地日期和时间。datetime.utcnow()
:返回当前的UTC日期和时间[…]。这类似于now()
,但返回当前的UTC日期和时间,如naivedatetime
举个例子:
抵消
In [1]: datetime.datetime.now()
Out[1]: datetime.datetime(2018, 4, 13, 17, 8, 4, 457551)
In [2]: datetime.datetime.utcnow()
Out[2]: datetime.datetime(2018, 4, 13, 15, 8, 5, 385598)
无偏移量
In [3]: datetime.datetime.now(tz=pytz.utc)
Out[3]: datetime.datetime(2018, 4, 13, 15, 8, 59, 590874, tzinfo=<UTC>)
In [4]: datetime.datetime.utcnow()
Out[4]: datetime.datetime(2018, 4, 13, 15, 9, 1, 494370)
关于python - 为什么datetime.datetime.now()。timestamp()和datetime.datetime.utcnow()。timestamp()之间有区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49819691/