以微秒为单位的 Unix 时间到实时 python

Unix time to real time in microseconds python

我尝试了以下方法并收到错误:

>>> datetime.utcfromtimestamp(1539065539).strftime('%Y-%m-%d %H:%M:%S.%f')
'2018-10-09 6:12:19.000000'.
>>> datetime.utcfromtimestamp(int(1539065539013987670)).strftime('%Y-%m-%d %H:%M:%S.%f')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument
>>> datetime.utcfromtimestamp(153906553901).strftime('%Y-%m-%d %H:%M:%S.%f')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument

我认为这个数字超出了 int 数据类型的大小。因此这个错误来了。如何摆脱它并在我期待的微秒内得到正确答案。

将值(实际上看起来是纳秒)除以 1e9 得到秒,您可以将其传递给 utcfromtimestamp

>>> datetime.datetime.utcfromtimestamp(1539065539013987670 / 1e9)
datetime.datetime(2018, 10, 9, 6, 12, 19, 13988)

已在 Python - Convert epoch time with nanoseconds to human-readable?

上回答
>>> datetime.utcfromtimestamp(1539065539013987670/1000000000).strftime('%Y-%m-%d %H:%M:%S.%f')
'2018-10-09 06:12:19.013988'