Ich habe eine Menge auf StackExchange nach einer Lösung durchsucht, aber nichts macht genau das, was ich brauche. In JavaScript verwende ich Folgendes, um die UTC-Zeit seit dem 1. Januar 1970 zu berechnen:
function UtcNow() {
var now = new Date();
var utc = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds(), now.getUTCMilliseconds());
return utc;
}
Was wäre der entsprechende Python-Code?
Antworten:
Versuchen Sie diesen Code, der datetime.utcnow () verwendet :
Wenn Sie für Ihre Zwecke einen Zeitaufwand zwischen zwei Daten berechnen müssen, müssen Sie lediglich die End- und Startdaten abziehen. Das Ergebnis einer solchen Subtraktion ist ein Zeitdelta-Objekt.
Aus den Python-Dokumenten:
Dies bedeutet, dass Sie standardmäßig alle in der Definition genannten Felder abrufen können - Tage, Sekunden, Mikrosekunden, Millisekunden, Minuten, Stunden, Wochen. Außerdem hat die timedelta-Instanz die Methode total_seconds (), die:
quelle
In der Form, die Ihrem Original am nächsten kommt:
Wenn Sie die Anzahl der Sekunden vom 01.01.1970 anstelle eines nativen Pythons kennen müssen
datetime
, verwenden Sie stattdessen Folgendes :Python hat Namenskonventionen, die im Widerspruch zu dem stehen, was Sie in Javascript gewohnt sind (siehe PEP 8) . Außerdem ist eine Funktion, die einfach das Ergebnis einer anderen Funktion zurückgibt, ziemlich dumm. Wenn es nur darum geht, den Zugriff zu erleichtern, können Sie einen anderen Namen für eine Funktion erstellen, indem Sie sie einfach zuweisen. Das erste Beispiel oben könnte ersetzt werden durch:
quelle
tzinfo
Objekte, auch nicht für UTC.Einfache Standardbibliothek nur für modernes Python. Gibt im Gegensatz zu zeitzonenabhängiger Datums- und Uhrzeitangabe
datetime.utcnow()
.datetimes
Ohne Zeitzonen warten Unfälle darauf, passiert zu werden.quelle
quelle
Ab datetime.datetime können Sie bereits mit der Methode strftime in Zeitstempel exportieren. Folgen Sie Ihrem Funktionsbeispiel:
Wenn Sie Mikrosekunden möchten, müssen Sie die Exportzeichenfolge ändern und so umwandeln, dass sie wie folgt schwebt:
return float(now.strftime("%s.%f"))
quelle
time.time()
. Sie können auch time.mktime (now.timetuple ()) verwenden, um direkt in int zu konvertieren. Auf jeden Falltime.time()
ist für diesen einfachen Fall auch eine gültige Option. Was ich merkwürdig finde, ist, per Zeitdelta die Sekunden zu finden.strftime("%s")
plattformabhängig ist und unter Windows nicht funktioniert. (Zumindest nicht für mich unter Windows 10).Zeitzonenbewusst ohne externe Abhängigkeiten:
quelle
Probieren Sie es in Python 3 mit dem Lambda-Ausdruck aus.
und rufen Sie die Funktion normal auf;
quelle