Wie man die aktuelle Zeit in Python
Was ist ein Modul/eine Methode verwendet, um die aktuelle Zeit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ist ein Modul/eine Methode verwendet, um die aktuelle Zeit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden:
Und einfach die Zeit:
Sehen Dokumentation für weitere Informationen.
Speichern Tippen, können Sie importieren Sie die
datetime
Objekt aus derdatetime
Modul:Dann entfernen Sie das führende
datetime.
aus all den oben.Können Sie
Zeit.strftime()
:time
Modul vs.datetime
Modul?localtime()
statt dergmtime()
zu bekommen Ihrer lokalen Zeit.Für dieses Beispiel wird die Ausgabe wie diese:
'2013-09-18 11:16:32'
Hier ist die Liste der
strftime
- Direktiven.Ähnlich Harley ' s Antwort, aber verwenden Sie die
str()
Funktion für eine quick-n-dirty, ein bisschen mehr human-readable format:Die
time
ModulDen
time
Modul bietet Funktionen, die uns sagt, die Zeit in "Sekunden seit der Epoche", ebenso wie andere Versorgungsunternehmen.Unix Epoch Time
Dies ist das format, das Sie bekommen sollte Zeitstempel in für das speichern in Datenbanken. Es ist eine einfache floating-point-Zahl, die in eine Ganzzahl konvertiert. Es ist auch gut für die Arithmetik in Sekunden, als es repräsentiert die Anzahl der Sekunden seit dem Jan 1, 1970 00:00:00, und es ist Speicher, der Licht im Vergleich zu den anderen Darstellungen der Zeit, wir werden uns bei der nächsten:
Dieser timestamp nicht berücksichtigt, für die Sprung-Sekunden, es ist also nicht linear - Schaltsekunden ignoriert werden. So, während es ist nicht äquivalent zu der internationalen UTC-standard, es ist in der Nähe, und daher ganz gut für die meisten Fälle von Aufzeichnungen.
Dies ist nicht ideal für die menschliche Planung, jedoch. Wenn Sie eine zukünftige Veranstaltung, die Sie möchten, nehmen Sie Platz an einem bestimmten Punkt in der Zeit, die Sie speichern möchten, die Zeit mit einem string, der analysiert werden kann, in ein datetime-Objekt oder ein datetime-Objekt serialisiert werden (diese wird später beschrieben).
time.ctime
Können Sie auch repräsentieren die aktuelle Uhrzeit in der Weise bevorzugt, die von Ihrem Betriebssystem (was bedeutet, es kann sich ändern, wenn Sie änderungen an Ihrem system-Einstellungen, so verlassen Sie sich nicht auf diesen standard zu sein, die auf allen Systemen, als ich gesehen habe, andere erwarten). Dies ist in der Regel benutzerfreundlich, aber in der Regel nicht das Ergebnis in strings kann man Sie chronologisch sortiert:
Können Sie Hydrat-timestamps in lesbaren form mit
ctime
sowie:Diese Umstellung ist auch nicht gut für Aufzeichnungen (außer im text, wird nur analysiert werden, indem Menschen - und mit verbesserter Optical Character Recognition und Artificial Intelligence, ich denke die Anzahl dieser Fälle wird sich vermindern).
datetime
ModulDen
datetime
Modul ist auch sehr nützlich, hier:datetime.datetime.now
Den
datetime.now
ist eine Klasse Methode gibt die aktuelle Zeit. Es verwendet dietime.localtime
ohne die timezone info (wenn nicht gegeben, sonst sehen timezone bewusst unten). Es hat eine Darstellung (damit Sie neu ein äquivalentes Objekt) im Klartext auf der shell, aber wenn es gedruckt wird (oder dazu gezwungen einestr
), es ist von Menschen lesbar (und fast ISO) - format, und die lexikographische Sortierung entspricht der chronologischen Sortierung:datetime ist
utcnow
Können Sie ein datetime-Objekt in der UTC-Zeit, einen globalen standard, indem Sie diese:
UTC ist die Zeit-standard-das entspricht fast der GMT-Zeitzone. (Während der GMT und UTC nicht ändern, für die Sommerzeit, die Ihre Benutzer können wechseln zu anderen Zeitzonen, wie die britische Sommer Zeit, während des Sommers.)
datetime-timezone bewusst
Jedoch keiner der datetime-Objekte, die wir bisher entwickelt haben kann einfach umgerüstet werden, um den verschiedenen Zeitzonen. Wir lösen das problem mit den
pytz
Modul:Gleichwertig, in Python 3 haben wir die
timezone
Klasse mit einem utctimezone
Instanz angebracht, die macht auch das Objekt timezone bewusst (aber zum konvertieren in eine andere Zeitzone, ohne das handypytz
Modul Links als übung für den Leser):Und wir sehen, können wir leicht zu konvertieren Zeitzonen von die original utc-Objekt.
Können Sie auch eine naive datetime-Objekt bewusst mit der
pytz
Zeitzonelocalize
Methode, oder durch ersetzen das tzinfo-Attribut (mitreplace
ist dies getan, blind), aber diese sind in der letzten resorts als best practices:Den
pytz
- Modul ermöglicht es uns, unseredatetime
Objekte timezone bewusst und konvertieren Sie die Zeiten, die Hunderte von Zeitzonen zur Verfügung, die in derpytz
Modul.Könnte man angeblich serialisieren Sie das Objekt für UTC-Zeit und speichern , dass in einer Datenbank, aber es bräuchte weit mehr Speicher und mehr fehleranfällig als die bloße Speicherung der Unix-Epoche Zeit, die ich gezeigt erste.
Andere Möglichkeiten der Betrachtung der Zeiten sind viel mehr fehleranfällig, vor allem beim Umgang mit Daten, die möglicherweise kommen aus unterschiedlichen Zeitzonen. Sie wollen, dass es keine Verwirrung, zu welcher Zeitzone ein string oder datetime-Objekt serialisiert gedacht war.
Wenn Sie die Anzeige der Zeit mit Python für den Benutzer
ctime
funktioniert gut, nicht in einer Tabelle (nicht in der Regel Art auch), aber vielleicht in einer Uhr. Allerdings empfehle ich persönlich, wenn der Umgang mit Zeit in Python entweder mit der Unix-Zeit, oder eine timezone bewusst UTCdatetime
Objekt.Tun
t
- float-Zahl, gut für die Zeitintervall-Messung.Da gibt es einen Unterschied für Unix-und Windows-Plattformen.
Dass Ausgänge die aktuelle GMT im angegebenen format. Es gibt auch eine
localtime()
Methode.Diese Seite hat mehr details.
Alle gute Vorschläge, aber ich finde es am einfachsten zu verwenden
ctime()
mich:Das gibt eine schön formatierte string-Repräsentation des aktuellen lokalen Zeit.
Wenn Sie müssen die aktuelle Uhrzeit als eine
time
Objekt:Schnellste Weg ist
.isoformat()
ist in der Dokumentation, aber noch nicht hier(dies ist mächtig, ähnlich wie @Ray Vega Antwort):
Warum nicht Fragen, die US Naval Observatory, dem offiziellen Zeitnehmer der United States Navy?
Wenn Sie Leben in den DC-Bereich (wie mich) die Wartezeit vielleicht gar nicht so schlecht...
Mit pandas, um die aktuelle Uhrzeit, Art der overkilling das problem auf der hand:
Ausgabe:
Dies ist, was ich landete mit:
Auch diese Tabelle ist eine notwendige Referenz für die Auswahl der richtigen format-codes, um das Datum formatiert genau so, wie Sie es wollen (von einem Python "datetime" - Dokumentation hier).
strftime(time_format)
gibt die aktuelle lokale Uhrzeit als string, der entspricht, die gegebentime_format
. Hinweis:time.strftime()
unddatetime.strftime()
Unterstützung verschiedener Richtlinie legt z.B.,%z
ist nicht unterstützt durchtime.strftime()
auf Python 2.time
Modul-Funktionen sind dünne Wrapper um die entsprechenden C-Funktionen.datetime
ist eine höhere Ebene, und es ist in der Regel mehr tragbar.Tun
dir(date)
oder alle Variablen, einschließlich der Verpackung. Sie können alle Attribute und Methoden im Zusammenhang mit der variable.import datetime
dann ist esdatetime.datetime.now()
\n wennfrom datetime import datetime
dann ist esdatetime.now()
wenn Sie mit numpy bereits dann direkt die Sie verwenden können, numpy.datetime64()
Funktion.
nur für Datum:
oder, wenn Sie mit pandas schon, dann können Sie pandas.to_datetime () - Funktion
oder,
datetime.now()
gibt die aktuelle Zeit als naive datetime-Objekt repräsentiert die Zeit in der lokalen Zeitzone. Dieser Wert kann mehrdeutig sein, z.B., während der DST-übergänge ("fall back"). Um Unklarheiten zu vermeiden entweder die UTC-Zeitzone verwendet werden soll:Oder eine timezone-bewusst-Objekt, das die entsprechende Zeitzone info beigefügt (Python 3.2+):
Können Sie die
time
Modul:Den Einsatz des Kapitals
Y
gibt das ganze Jahr und mity
geben würde06/02/15
.Könnte man auch den folgenden code verwenden, um einen langwierigen Zeit:
Versuchen Sie die Pfeil-Modul von http://crsmithdev.com/arrow/:
Oder die UTC-version:
Ändern der Ausgabe hinzufügen .format():
Für eine bestimmte Zeitzone:
Vor einer Stunde:
Oder wenn Sie wollen das wesentliche.
arrow.now('Time/Zone')
fehlschlagen für einige Zeitzonen (arrow
verwendetdateutil
hat gebrochen utc -> lokale conversions, die verwendet werden, innerhalbarrow.now()
. Hinweis:pytz
hat kein solches Problem. Auch, es gibt andere Zeitzone-bezogene ProblemeStandardmäßig
now()
Funktion gibt die Ausgabe in derYYYY-MM-DD HH:MM:SS:MS
- format. Verwenden Sie die folgenden Beispiel-Skript, um die aktuelle Datum und Uhrzeit in einem Python-Skript und drucken der Ergebnisse auf dem Bildschirm. Erstellen Sie die DateigetDateTime1.py
mit dem unten gezeigten Inhalt.Die Ausgabe sieht wie folgt aus:
Ich möchte die Zeit mit Millisekunden. Ein einfacher Weg Sie zu bekommen:
Aber ich will nur Millisekunden, richtig? Der kürzeste Weg, Sie zu bekommen:
Hinzufügen oder entfernen von Nullen aus der letzten Multiplikation einstellen der Anzahl der Nachkommastellen, oder einfach nur:
Diese Frage braucht nicht eine neue Antwort, nur um der es ... eine glänzende neue-ish Spielzeug/Modul, jedoch ist genug Rechtfertigung. Die Pendel-Bibliothek, das zu tun scheint die Art von Dingen, die Pfeil versucht, außer ohne die inhärenten Fehler und bugs heimgesucht Pfeil.
Beispielsweise die Antwort auf die ursprüngliche Frage:
Es gibt eine Menge von standards, die es anzugehen gilt, einschließlich mehrerer RFCs und ISOs, zu kümmern. Jemals Ihnen vermischt; keine sorgen zu machen, nehmen Sie einen kleinen Blick in
dir(pendulum.constants)
Es ist ein bisschen mehr als RFC-und ISO-Formate, obwohl.Wenn wir sagen, dass die lokalen, aber was meinen wir damit? Gut, ich meine:
Vermutlich die meisten der übrigen meinst du woanders.
Und weiter geht es. Lange Rede kurzer Sinn: das Pendel, das zu tun versucht, für Datum und Uhrzeit, welche Anforderungen hast, für HTTP. Es ist eine überlegung Wert, vor allem für seine Benutzerfreundlichkeit und umfangreiche Dokumentation.
Wenn Sie wollen einfach nur den aktuellen timestamp in ms (beispielsweise zum Messen der Ausführungszeit), können Sie auch die "timeit" - Modul:
Weil niemand erwähnt hat er noch, und das ist etwas, was ich lief in vor kurzem... ein pytz Zeitzonen-fromutc () - Methode in Kombination mit datetime ist utcnow() ist der beste Weg, die ich gefunden habe, um eine gute aktuelle Zeit (und Datum) in einer beliebigen Zeitzone.
Wenn alle Sie wollen, ist die Zeit, dann kann man das mit
local_time.time()
.Das folgende ist, was ich verwenden, um Zeit zu bekommen, ohne zu formatieren. Manche Menschen wissen nicht, wie die split-Methode, aber es ist nützlich, hier:
Gibt es in HH:MM:SS-format.
Können Sie verwenden Sie diese Funktion, um die Zeit (leider nicht sagen, AM oder PM):
Um die Stunden, Minuten, Sekunden und Millisekunden später Zusammenführen, können Sie diese Funktionen nutzen:
Stunde:
Minute:
Zweite:
Millisekunde:
Datum druckt Datum und Zeit gedruckt wird Zeit.
Aktuelle Datum, Zeit, Attribute:
Beim Aufruf
ctime()
wird es konvertiert Sekunden, um die Zeichenfolge in ein format'Day Month Date HH:MM:SS Year'
(zum Beispiel:'Wed January 17 16:53:22 2018'
), dann rufen Siesplit()
Methode, die eine Liste von Strings['Wed','Jan','17','16:56:45','2018']
(Standard-delimeter ist der Raum).Klammern werden verwendet, um Sie 'wählen' wollte-argument in der Liste.
Sollte man aufrufen, nur eine code-Zeile. Sollte man nicht anrufen, wie ich es Tat, das war nur ein Beispiel, weil in einigen Fällen erhalten Sie verschiedene Werte, selten, aber nicht unmöglich Fällen.
ctime()
wie (mit "aktuellen" Zeit, die bei jedem Aufruf) wird nicht unbedingt ein brauchbarer Wert in Kombination mit jedem anderen.//
hier tun?Diese Frage ist für Python, aber da Django ist eines der am meisten verwendeten frameworks für Python, ist es wichtig zu beachten, dass, wenn Sie mit Django kann man immer verwenden
timezone.now()
stattdatetime.datetime.now()
. Der ehemalige timezone 'bewusst', während die letzteren nicht.Sehen diese SO beantworten und die Django doc für details und Hintergründe
timezone.now()
.Zuerst importieren Sie das datetime-Modul datetime
Drucken Sie dann die aktuelle Zeit als 'yyyy-mm-dd hh:mm:ss'
Bekommen nur die Zeit in der form 'hh:mm:ss", wo ss steht für die volle Anzahl der Sekunden, plus der Anteil der verstrichenen Sekunden, nur tun;
Konvertierung des datetime.jetzt() einen string liefert eine Antwort in dem format, das fühlt sich an wie die regelmäßigen TERMINE UND ZEITEN, die wir gewohnt sind.
Dies ist so einfach.
Versuchen: