据我所知,自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/

10-16 01:48