Как конвертировать время в эпоху - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть время эпохи, подобное этому 1488445200000 и мне нужно преобразовать его в переменную datetime. Я пытался

from datetime import datetime
dt = datetime.fromtimestamp(1488445200000 // 3600)
dt

Я получил

datetime.datetime(1983, 2, 7, 10, 10)

но результат, похоже, не правильный (правильный должен быть 2 марта 2017 г. 10:00:00 по Гринвичу + 01: 00) ... что мне делать?

А что, если мне нужно сделать не одно значение 1488445200000, а столбец в кадре данных. Должен ли я цикл? Или есть матричная операция?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Ваша метка времени указывается в миллисекундах, а дата и время ожидаются в секундах. Разделите на 1000, и это работает:

$ python3 
Python 3.7.0 (default, Jun 29 2018, 20:13:13) 
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import datetime
>>> dt = datetime.fromtimestamp(1488445200000 // 1000)
>>> dt
datetime.datetime(2017, 3, 2, 10, 0)
0 голосов
/ 06 ноября 2018

Попробуйте:

Использовать datetime модуль:

from datetime import datetime
ts = int(1488445200000//1000)
print(datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S'))
...