it-swarm.com.de

Aktuelle Zeit in Millisekunden in Python abrufen?

Wie kann ich in Python die aktuelle Zeit in Millisekunden abrufen?

444
Naftuli Kay

Für das, was ich brauchte, habe ich basierend auf dem obigen Kommentar von @samplebias Folgendes getan:

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

Schnell und einfach. Danke an alle, sorry für den Hirnfurz.

Zur Wiederverwendung:

import time

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

Dann:

>>> current_milli_time()
1378761833768
613
Naftuli Kay

time.time() gibt die Auflösung möglicherweise nur für die Sekunde an. Der bevorzugte Ansatz für Millisekunden ist datetime .

from datetime import datetime
dt = datetime.now()
dt.microsecond
76
Jason Polites
def TimestampMillisec64():
    return int((datetime.datetime.utcnow() - datetime.datetime(1970, 1, 1)).total_seconds() * 1000) 
38
user3324131

eine andere Lösung ist die Funktion, die Sie in Ihre eigenen utils.py einbetten können

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

Einfach Beispielcode:

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

Ausgabe: 1534343781311

11
Wilson Wu

Ab Version 3.7 können Sie time.time_ns() verwenden, um die Zeit in Nanosekunden von Epoch zu erhalten. Also kannst du es tun

ms = time.time_ns() // 1000000 

um die Zeit in Millisekunden als Ganzzahl zu erhalten.

11
zardosht

Wenn Sie eine einfache Methode in Ihrem Code wünschen, die die Millisekunden mit datetime zurückgibt:

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
9
Pascal

Der einfachste Weg, die aktuelle UTC-Zeit in Millisekunden zu ermitteln, ist:

# timeutil.py
import datetime


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

# sample.py
import timeutil


timeutil.get_epochtime_ms()
2
Laymain

Diese Multiplikationen auf 1000 für Millisekunden können angemessen sein, um eine bestimmte Voraussetzung zu lösen oder akzeptabel zu machen. Es könnte verwendet werden, um eine Lücke in Ihrer Datenbank zu füllen, die es nicht wirklich jemals nutzt. In realen Situationen, in denen ein genaues Timing erforderlich ist, würde dies jedoch letztendlich scheitern. Ich würde niemandem empfehlen, diese Methode für unternehmenskritische Vorgänge zu verwenden, für die Aktionen oder die Verarbeitung zu bestimmten Zeitpunkten erforderlich sind.

Zum Beispiel: Round-Trip-Pings von 30-80 ms in den USA ... Das konnte man nicht einfach aufrunden und effizient nutzen.

Mein eigenes Beispiel erfordert Aufgaben in jeder Sekunde, was bedeutet, dass, wenn ich nach der Beantwortung der ersten Aufgaben aufrunde, immer noch die Verarbeitungszeit multipliziert mit jedem Hauptschleifenzyklus anfällt. Dies wurde alle 60 Sekunden zu einem Gesamtfunktionsaufruf. Das ist ~ 1440 pro Tag .. nicht zu genau.

Nur ein Gedanke für Leute, die nach einer genaueren Argumentation suchen, die über das Lösen einer Datenbanklücke hinausgeht und diese nie wirklich ausnutzt.

0
Mike Guidry