Как я могу получить текущее время в миллисекундах в Python?
Получить текущее время в миллисекундах в Python?
Ответ 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
Микросекунды - 1 ⁄ 1000000 секунд, миллисекунды - 1 ⁄ 1000 секунд, поэтому:
dt.microseconds/1000.0
должно быть dt.microseconds/1000000.0
Ответ 12
from datetime import datetime d = datetime.now() print d.microsecond/1000 + d.second*1000