3909 Stimmen

Wie erhalte ich die aktuelle Uhrzeit?

Wie erhalte ich die aktuelle Uhrzeit?

81 Stimmen

Bitte beachten Sie, dass die meisten Antworten für die zeitzonenunabhängige Datetime sind, während wir sehen, dass in der Produktionsumgebung mehr und mehr Dienste auf der ganzen Welt miteinander verbunden sind und die zeitzonenabhängige Datetime zum erforderlichen Standard wird.

6 Stimmen

Dies ist ein sehr berechtigtes Argument von @SawomirLenart, und hier ist eine kurze Anleitung dazu mehrere Möglichkeiten, die aktuelle Zeit auf der Grundlage der Zeitzone zu ermitteln

0 Stimmen

Datetime-Bibliothek ist das, wonach Sie suchen

33voto

Kristen G. Punkte 693

Ich habe mich für diese Lösung entschieden:

>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")
01/09/2015 13:11

Außerdem ist diese Tabelle eine notwendige Referenz für die Auswahl der geeigneten Formatcodes, um das Datum so zu formatieren, wie Sie es wünschen (aus der Python-Dokumentation "datetime") ici ).

strftime format code table

2 Stimmen

strftime(time_format) gibt die aktuelle Ortszeit als String zurück, der der angegebenen time_format . Hinweis: time.strftime() y datetime.strftime() verschiedene Richtliniensätze unterstützen, z.B., %z wird nicht unterstützt von time.strftime() zu Python 2 .

1 Stimmen

Ist es besser, datetime anstelle von time zu verwenden?

2 Stimmen

Viele time Modulfunktionen sind dünne Umhüllungen der entsprechenden C-Funktionen. datetime ist eine höhere Stufe und in der Regel besser tragbar.

32voto

jfs Punkte 370717

datetime.now() gibt die aktuelle Zeit als naives datetime-Objekt zurück, das die Zeit in der lokalen Zeitzone darstellt. Dieser Wert kann mehrdeutig sein, z. B. während der Sommerzeitumstellung ("fall back"). Um Mehrdeutigkeit zu vermeiden, sollte entweder die UTC-Zeitzone verwendet werden:

from datetime import datetime

utc_time = datetime.utcnow()
print(utc_time) # -> 2014-12-22 22:48:59.916417

Oder ein zeitzonenfähiges Objekt, das die entsprechenden Zeitzoneninformationen enthält (Python 3.2+):

from datetime import datetime, timezone

now = datetime.now(timezone.utc).astimezone()
print(now) # -> 2014-12-23 01:49:25.837541+03:00

0 Stimmen

Zu Ihrer Information: Es wird nicht empfohlen, die datetime.utcnow() um die aktuelle Zeit in UTC darzustellen, da dies immer noch ein 'naives' datetime-Objekt ergibt -- stattdessen wird empfohlen, die datetime.now(timezone.utc) da diese ein "bewusstes" Datetime-Objekt zurückgibt. Weitere Einzelheiten finden Sie in den Python-Dokumenten: docs.python.org/3/library/

0 Stimmen

@Seth bemerkt, dass die Python 3.2+ Lösung die timezone.utc bereits. Vielleicht wird jetzt, wo Python 2.7 ausläuft, die naive Datumsangabe fallengelassen

0 Stimmen

Ah, ich wusste nicht, dass es rein für die Kompatibilität mit Python 2.7 war - vielleicht sollte das in dem Beitrag geklärt werden? Zumindest für mich, es schien, wie dieser Beitrag wurde impliziert, dass sowohl die naive und bewusste Methoden waren (noch) gleichermaßen akzeptable Möglichkeiten, um die UTC-Zeit zu erhalten, weshalb ich darauf hingewiesen, dass das nicht, was Python (neuesten) Dokumentation sagt.

26voto

Ben Punkte 3677

Diese Frage braucht keine neue Antwort, nur um der Antwort willen ... ein glänzendes neues Spielzeug/Modul ist jedoch Rechtfertigung genug. Da dies der Pendelbibliothek das anscheinend die gleichen Dinge tut wie arrow, nur ohne die inhärenten Fehler und Bugs, die arrow plagen.

Zum Beispiel die Antwort auf die ursprüngliche Frage:

>>> import pendulum
>>> print(pendulum.now())
2018-08-14T05:29:28.315802+10:00
>>> print(pendulum.now('utc'))
2018-08-13T19:29:35.051023+00:00

Es gibt viele Standards, die berücksichtigt werden müssen, darunter mehrere RFCs und ISOs, um die man sich kümmern muss. Wenn Sie diese jemals verwechseln, machen Sie sich keine Sorgen und werfen Sie einen Blick auf dir(pendulum.constants) Es gibt aber noch etwas mehr als RFC- und ISO-Formate.

Aber was meinen wir, wenn wir von "lokal" sprechen? Nun, ich meine:

>>> print(pendulum.now().timezone_name)
Australia/Melbourne
>>>

Vermutlich meinen die meisten anderen von Ihnen etwas anderes.

Und so geht es weiter. Lange Rede, kurzer Sinn: Pendulum versucht, für Datum und Zeit das zu tun, was Anfragen für HTTP getan haben. Es ist eine Überlegung wert, insbesondere wegen seiner Benutzerfreundlichkeit und der umfangreichen Dokumentation.

25voto

theBuzzyCoder Punkte 2394
import datetime
date_time = datetime.datetime.now()

date = date_time.date()  # Gives the date
time = date_time.time()  # Gives the time

print date.year, date.month, date.day
print time.hour, time.minute, time.second, time.microsecond

Do dir(date) oder irgendwelche Variablen einschließlich des Pakets. Sie können alle mit der Variablen verbundenen Attribute und Methoden abrufen.

0 Stimmen

@snofty und @user1016274, wenn import datetime dann ist es datetime.datetime.now() \n si from datetime import datetime dann ist es datetime.now()

25voto

user2030113 Punkte 465
>>> import datetime, time
>>> time = time.strftime("%H:%M:%S:%MS", time.localtime())
>>> print time
'00:21:38:20S'

0 Stimmen

Ich glaube, Sie wollen sagen "datetime.now().strftime(...)"

0 Stimmen

Ja, das kann man machen, wie Sie gesagt haben. "datetime.datetime.now().strftime("%H:%M:%S:%MS")"

4 Stimmen

%MS gibt Ihnen keine Millisekunden!!

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