TeX*_*obe 6 python timezone datetime epoch python-3.5
据我了解,自 Unix 纪元(1970-01-01 00:00:00 UTC )以来的秒数在全球各地都应该相同,因为它固定为 UTC。
现在,如果您所在的时区有几个小时 +/- UTC,为什么这样做会得到不同的时间戳(在我的情况下为+2 小时)
>>> datetime.datetime.utcnow().timestamp()
1523622844.637763
>>> datetime.datetime.now().timestamp()
1523630048.558158
Run Code Online (Sandbox Code Playgroud)
如果考虑到我运行第二行代码所花费的时间,您会得出两个时间戳之间存在 7200 秒(2 小时)差异的结论。这些时间戳不应该是不知道时区的吗?
来自文档:
datetime.now():返回当前本地日期和时间。datetime.utcnow():返回当前 UTC 日期和时间 [...]。这类似于now(),但返回当前 UTC 日期和时间,作为一个天真的datetime举个例子:
抵消
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)
Run Code Online (Sandbox Code Playgroud)
无偏移
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)
Run Code Online (Sandbox Code Playgroud)