Как создать дату-время в Python с миллисекунд?

Я могу создать аналогичный объект Date в Java java.util.Date(миллисекунды). Как создать сопоставимый в Python?

Выделяет объект Date и инициализирует его для представления указанного количества миллисекунд с момента стандартного базового времени, известного как "эпоха", а именно 1 января 1970 года, 00:00:00 GMT.

Ответ 1

Просто преобразуйте его в метку времени

datetime.datetime.fromtimestamp(ms/1000.0)

Ответ 2

Как насчет этого? Я полагаю, что можно рассчитывать на обработку дат до 1970 года и после 2038 года.

target_date_time_ms = 200000 # or whatever
base_datetime = datetime.datetime( 1970, 1, 1 )
delta = datetime.timedelta( 0, 0, 0, target_date_time_ms )
target_date = base_datetime + delta

как уже упоминалось в стандартной библиотеке Python:

fromtimestamp() может вызвать ValueError, если временная метка выходит за пределы диапазона значений, поддерживаемых функциями платформы timetime() или gmtime(). Обычно это ограничивается годами с 1970 по 2038 годы.

Ответ 3

Немного тяжелый из-за использования панд, но работает:

import pandas as pd
pd.to_datetime(msec_from_java, unit='ms').to_pydatetime()