Получить текущее время в миллисекундах в Python? - PullRequest
432 голосов
/ 14 мая 2011

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

Ответы [ 11 ]

597 голосов
/ 14 мая 2011

Для того, что мне нужно, вот что я сделал, основываясь на комментарии @samplebias выше:

import time
millis = int(round(time.time() * 1000))
print millis

Quick'n'easy. Спасибо всем, извините за пукание мозга.

Для повторного использования:

import time

current_milli_time = lambda: int(round(time.time() * 1000))

Тогда:

>>> current_milli_time()
1378761833768
74 голосов
/ 02 ноября 2012

time.time() может разрешать только секунды, предпочтительный подход для миллисекунд - datetime.

from datetime import datetime
dt = datetime.now()
dt.microsecond
38 голосов
/ 18 февраля 2014
def TimestampMillisec64():
    return int((datetime.datetime.utcnow() - datetime.datetime(1970, 1, 1)).total_seconds() * 1000) 
11 голосов
/ 15 августа 2018

Просто пример кода:

import time
timestamp = int(time.time()*1000.0)

Выход: 1534343781311

11 голосов
/ 14 мая 2011

другое решение - это функция, которую вы можете встроить в свой собственный utils.py

import time as time_ #make sure we don't override time
def millis():
    return int(round(time_.time() * 1000))
9 голосов
/ 20 февраля 2013

Если вам нужен простой метод в вашем коде, который возвращает миллисекунды с датой и временем:

from datetime import datetime
from datetime import timedelta

start_time = datetime.now()

# returns the elapsed milliseconds since the start of the program
def millis():
   dt = datetime.now() - start_time
   ms = (dt.days * 24 * 60 * 60 + dt.seconds) * 1000 + dt.microseconds / 1000.0
   return ms
8 голосов
/ 31 мая 2019

Начиная с версии 3.7 , вы можете использовать time.time_ns() для получения времени, прошедшего через нано секунды с начала эпохи.Таким образом, вы можете сделать

ms = time.time_ns() // 1000000 

, чтобы получить время в миллисекундах в виде целого числа.

2 голосов
/ 02 мая 2018

Самый простой способ узнать текущее время UTC в миллисекундах:

# timeutil.py
import datetime


def get_epochtime_ms():
    return round(datetime.datetime.utcnow().timestamp() * 1000)

# sample.py
import timeutil


timeutil.get_epochtime_ms()
0 голосов
/ 17 июня 2019

Эти умножения на 1000 для миллисекунд могут быть приличными для решения или принятия некоторого предварительного условия приемлемым.Это может быть использовано для заполнения пробела в вашей базе данных, которая на самом деле никогда не использует его.Хотя для реальных ситуаций, требующих точного времени, это в конечном итоге не удастся.Я бы не советовал никому использовать этот метод для критически важных операций, которые требуют действий или обработки в определенные моменты времени.

Например: пинг в оба конца в США составляет 30-80 мс ... Вы не моглиЯ просто округляю это и использую это эффективно.

Мой собственный пример требует задач каждую секунду, что означает, что если я соберусь после того, как первые задачи ответили, я все равно буду брать на себя время обработки, умноженное на каждый цикл основного цикла.В итоге это был полный вызов функции каждые 60 секунд.это ~ 1440 в день ... не слишком точно.

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

0 голосов
/ 10 июня 2015
    from datetime import datetime
    d = datetime.now()
    print d.microsecond/1000 + d.second*1000 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...