Временная метка JavaScript в Python

Чтобы получить метку времени в JavaScript, мы используем

<code>var ts = new Date().getTime()
</code>

Как правильно преобразовать его в Python?datetime пока я использую следующий код

<code>>>> jsts = 1335205804950
>>> dt = datetime.datetime.fromtimestamp(jsts/1000)
>>> dt
datetime.datetime(2012, 4, 24, 0, 30, 4)
</code>

Я делю отметку времени на 1000, потому что я получаю ошибку как

<code>ValueError                                Traceback (most recent call last)
1 d = datetime.datetime.fromtimestamp(a)
ValueError: year is out of range
</code>

Султан.

Ответы на вопрос(3)

Решение Вопроса

деление на 1000 необходимо, потому что ваш JavaScript возвращает метку времени в миллисекундах, иdatetime.datetime.fromtimestamp() ожидает отметку времени в секундах.

Чтобы сохранить точность в миллисекундах, вы можете разделить на1000.0, так что вы используете деление с плавающей точкой вместо целочисленного деления:

>>> dt = datetime.datetime.fromtimestamp(jsts/1000.0)
>>> dt
datetime.datetime(2012, 4, 23, 11, 30, 4, 950000)
 26 янв. 2017 г., 15:36
@delnan У меня та же проблема в python3:datetime.fromtimestamp(1485373592240) не удается, если не разделен на1000
 23 апр. 2012 г., 20:42
К счастью, в Python 3 это не нужно.
 31 авг. 2017 г., 19:41
@jjj Я думаю, он имел в виду разделение чисел с плавающей точкой в python 3.x; у нас есть явный оператор целочисленного деления -// - так что если вы разделитеfloat поint с/ Вы получаетеfloat.

у меня была похожая проблема, но метка времени Unix была в микросекундах, то есть мне пришлось делить метку времени на 1000000, чтобы получить правильный результат.

dt = datetime.datetime.fromtimestamp(1502360499615921)

как вы делаете это правильно, потому что js включает миллисекунды в дату / время. Python (и PHP), насколько я знаю, не так. Для большей точности вы можете использовать/1000.0.

Ваш ответ на вопрос