以人类可读的格式转换纪元时间

converting epoch time in human readable format

我想将纪元时间转换为人类可读的格式,当我给出随机纪元时间时,例如下面的

 epoch1 = datetime.datetime.fromtimestamp(1347517370).strftime('%c')
 print(epoch1)

那么这工作正常。 但是,如果我使用的是我通过 API 检索的纪元时间。这不起作用并给我错误

epoch1 = datetime.datetime.fromtimestamp(1563924640001).strftime('%c')
print(epoch1)

这有什么问题?即使我正在传递变量,它也不起作用。

epoch1 = datetime.datetime.fromtimestamp(epoch).strftime('%c')

我想从 API 获取所有纪元时间并将其转换为人类可读的格式。

非常感谢任何帮助

错误:

Traceback (most recent call last):
  File "C:/Users/kiran.tanweer/Documents/Python Scripts/siem/01_GetOffenses.py", line 1042, in <module>
    main()
  File "C:/Users/kiran.tanweer/Documents/Python Scripts/siem/01_GetOffenses.py", line 953, in main
    epoch1 = datetime.datetime.fromtimestamp(1563924640001).strftime('%c')
OSError: [Errno 22] Invalid argument

您将从 API 获得毫秒纪元时间。

除以 1000 得到 fromtimestamp 接受的秒数:

>>> datetime.datetime.fromtimestamp(1563924640001 / 1000).strftime('%c')
'Wed Jul 24 02:30:40 2019'

像下面这样尝试

>>> import datetime
>>> datetime.datetime.fromtimestamp(1347517370).strftime('%Y-%m-%d %H:%M:%S')
'2012-09-13 14:22:50' # Local time

你的情况 1563924640001156392464000

epoch1 = datetime.datetime.fromtimestamp(156392464000).strftime('%c')
print(epoch1)
# output: Sun Nov 18 04:36:40 6925