Python конвертирует datetime в int (точность в миллисекундах) - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть тип datetime, и я хочу преобразовать его в int, но с точностью до миллисекунд.Например, у меня есть дата и время в UTC 2018-11-19 02: 19: 53.497, и я хочу, чтобы оно конвертировалось в 1542593993497

В настоящее время я написал следующую функцию:

def convert(inputDatetime):
    return int((inputDatetime - datetime.datetime(1970,1,1)).total_seconds())

Здесь дата и времяэто точность в миллисекундах, например, datetime.datetime (2009, 3, 20, 13, 55, 18, 993000)

Функция на данный момент может преобразовывать только дату и время с точностью до int в секундах.Как мне сделать точность, чтобы быть в миллисекундах?

Версия Python, которую я сейчас использую, составляет 2.7

1 Ответ

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

Получено из принятого ответа Как преобразовать объект даты и времени в миллисекунды с начала эпохи (Unix) в Python?

import datetime

epoch = datetime.datetime.utcfromtimestamp(0)

def unix_time_millis(dt):
    return (dt - epoch).total_seconds() * 1000.0

Тест:

dt = datetime.datetime(2009, 3, 20, 13, 55, 18, 993000)
print("%d" % unix_time_millis(dt))  # 1237557318993

Ключевым моментом является то, что вычисление (dt - epoch).total_seconds() должно возвращать секунды в формате с плавающей запятой (т.е. включая миллисекунды), а затем умножаться на 1000.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...