493 Stimmen

Wie kann ich ein datetime-Objekt in Python in Millisekunden seit Epoche (Unix-Zeit) konvertieren?

Ich habe eine Python datetime Objekt, das ich in Unix-Zeit umwandeln möchte, oder Sekunden/Millisekunden seit 1970.

Wie kann ich das tun?

3 Stimmen

1 Stimmen

Wenn Sie hier gelandet sind und nur aktuell Epochensekunden mit Millisekundengenauigkeit, versuchen Sie $ python -c 'import time; print(time.time())' die gab: 1584487455.698623

0 Stimmen

@MarkHu das scheint Mikrosekundengenau zu sein.

2voto

Daniel Kobe Punkte 8499

Viele dieser Antworten funktionieren nicht für Python 2 oder bewahren nicht die Millisekunden aus der Datetime. Dies funktioniert für mich

def datetime_to_ms_epoch(dt):
    microseconds = time.mktime(dt.timetuple()) * 1000000 + dt.microsecond
    return int(round(microseconds / float(1000)))

1voto

MattoTodd Punkte 13339
import time
seconds_since_epoch = time.mktime(your_datetime.timetuple()) * 1000

1voto

Gil Allen Punkte 1133

Hier ist eine Funktion, die ich auf der Grundlage der obigen Antwort erstellt habe

def getDateToEpoch(myDateTime):
    res = (datetime.datetime(myDateTime.year,myDateTime.month,myDateTime.day,myDateTime.hour,myDateTime.minute,myDateTime.second) - datetime.datetime(1970,1,1)).total_seconds()
    return res

Sie können den zurückgegebenen Wert wie folgt verpacken: str(int(res)) Rückgabe ohne Dezimalwert zur Verwendung als String oder einfach int (ohne str)

-16voto

samsanthosh2008 Punkte 77

Diese andere Lösung für die Umwandlung von datetime in unixtimestampmillis.

private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

    public static long GetCurrentUnixTimestampMillis()
    {
        DateTime localDateTime, univDateTime;
        localDateTime = DateTime.Now;          
        univDateTime = localDateTime.ToUniversalTime();
        return (long)(univDateTime - UnixEpoch).TotalMilliseconds;
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X