Подтвердить что ты не робот

Получить текущее время в миллисекундах в Python?

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

4b9b3361

Ответ 1

Для чего мне нужно, вот что я сделал, основываясь на комментарии @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

Ответ 2

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

from datetime import datetime
dt = datetime.now()
dt.microsecond

Ответ 3

def TimestampMillisec64():
    return int((datetime.datetime.utcnow() - datetime.datetime(1970, 1, 1)).total_seconds() * 1000) 

Ответ 4

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

ms = time.time_ns() // 1000000 

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

Ответ 5

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

import time as time_ #make sure we don't override time
def millis():
    return int(round(time_.time() * 1000))

Ответ 6

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

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

Выход: 1534343781311

Ответ 7

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

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

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

# timeutil.py
import datetime


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

# sample.py
import timeutil


timeutil.get_epochtime_ms()

Ответ 9

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

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

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

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

Ответ 10

Если вы беспокоитесь об измерении прошедшего времени, вам следует использовать монотонные часы (python 3). На эти часы не влияют обновления системных часов, как, например, если бы запрос NTP скорректировал ваше системное время, например.

>>> import time
>>> millis = round(time.monotonic() * 1000)

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

Ответ 11

Микросекунды - 11000000 секунд, миллисекунды - 11000 секунд, поэтому:

dt.microseconds/1000.0 должно быть dt.microseconds/1000000.0

Ответ 12

    from datetime import datetime
    d = datetime.now()
    print d.microsecond/1000 + d.second*1000