Как преобразовать timestamp из JavaScript в Python timestamp?
Чтобы получить в JavaScript timestamp я использую:
let ts = Date().now();
Когда я пытаюсь его использовать в Python, в данном случае у меня число 1714590637844:
>>> datetime.datetime.fromtimestamp('1714590637844')
Traceback (most recent call last):
File "stdin", line 1, in module
ValueError: year 56303 is out of range
Что я делаю не так?
Ответы
Решение
Вы делаете все правильно, действительно необходимо разделить на 1000, потому что JavaScript возвращает timestamp в миллисекундах, а datetime.datetime.fromtimestamp() ожидает timestamp в секундах.
Чтобы сохранить точность, нужно делить на float, 1000.0:
>>> jsts = 1714590637844
>>> dt = datetime.datetime.fromtimestamp(jsts/1000.0)
>>> dt
datetime.datetime(2024, 5, 2, 0, 10, 37, 844000)
Как видите, еще fromtimestamp() принимает число, а не строку