Bitte beachten Sie, dass die am häufigsten bewerteten Antworten für die zeitzonoe-naive Datumszeit gelten, während wir sehen, dass in der Produktionsumgebung immer mehr Dienste auf der ganzen Welt miteinander verbunden sind und die zeitzonenbezogene Datumszeit zum erforderlichen Standard wird
Es wäre schön, wenn diese Antwort Zeitzonen abdecken würde (vielleicht UTC als Beispiel) und vielleicht mit time.time () beginnen würde.
Greg Lindahl
4
@Toskan Das Format war nicht Teil der Frage, daher sollte es nicht Teil der Antwort sein. Es gibt bereits einen Link zu mehr Dokumentation des Moduls, der Dinge wie Formatierung enthält.
JiyuuSensei
In welcher Version von Python wurde die ursprüngliche Antwort gegeben? Wenn datetime.datetime.now()ich nur meine interaktive Python 2.7-Konsole eingebe (IronPython wurde noch nicht aktualisiert), verhalte ich das gleiche Verhalten wie im neueren Beispiel print()in der Antwort. Ich habe nicht erfolgreich repliziert, was die ursprüngliche Antwort zeigt (datetime.datetime (2009, 1, 6, 15, 8, 24, 78915)). (Nicht, dass ich wirklich möchte, das print () -Verhalten wird bevorzugt, aber ich bin neugierig.)
RTHarston
@ BobVicktor: Python 2.7, 3.7 und 3.8 verhalten sich für mich alle gleich, nicht sicher, was Sie sehen.
Harley Holcombe
@HarleyHolcombe Hmm ... vielleicht ist es eine IronPython-Sache? Wenn ich tippedatetime.now() alleine print(datetime.now())
Es wird lediglich darum gebeten, die aktuelle Uhrzeit abzurufen und nicht anzuzeigen.
pppery
@ppperry, dann weisen Sie einfach Rays Antwort eine Variable zu - wie: myTime = str (datetime.now ()) .
Lukas
2
Nicht relevant; Der Schritt "str" ist nicht im Rahmen der Frage
pppery
4
@pppery Die OP sagt auch nicht, dass es nicht darum geht, einen String der Zeit zu bekommen. Die Operation sagt überhaupt nicht, was sie mit der Zeit anfangen wollen. Warum ist es also schlecht zu zeigen, wie man sie in eine Zeichenfolge umwandelt? In den meisten Antworten geht es darum, einen String aus der Zeit zu erhalten. Es scheint also ein häufiger Anwendungsfall zu sein. Warum also Rays Antwort herausgreifen? Was nützt es, einfach Zeit zu haben, ohne zu wissen, wie man etwas damit macht? Sie können es drucken oder darauf rechnen, und nur einige der Antworten zeigen, wie man darauf rechnet. Daher denke ich, dass das Drucken / Abrufen einer Zeichenfolge eine häufige Verwendung ist. ;-) (Ich weiß, dass es das ist, wofür ich gekommen bin.)
RTHarston
1
Die Tatsache , dass diese Antwort mehr als 440 upvotes hat legt nahe , dass die geringfügige Zugabe der String - Methode war , um eine Menge von Menschen nützlich.
John
360
Wie erhalte ich die aktuelle Zeit in Python?
Das time Modul
Das timeModul bietet Funktionen, die die Zeit in "Sekunden seit der Epoche" sowie andere Dienstprogramme anzeigen.
import time
Unix-Epochenzeit
Dies ist das Format, in dem Sie Zeitstempel zum Speichern in Datenbanken erhalten sollten. Es ist eine einfache Gleitkommazahl, die in eine Ganzzahl konvertiert werden kann. Es ist auch gut für die Arithmetik in Sekunden, da es die Anzahl der Sekunden seit dem 1. Januar 1970 um 00:00:00 Uhr darstellt und im Vergleich zu den anderen Zeitdarstellungen, die wir als nächstes betrachten werden, Speicherlicht ist:
>>> time.time()1424233311.771502
Dieser Zeitstempel berücksichtigt keine Schaltsekunden, ist also nicht linear - Schaltsekunden werden ignoriert. Obwohl es nicht dem internationalen UTC-Standard entspricht, ist es nahe beieinander und daher für die meisten Fälle von Aufzeichnungen recht gut.
Dies ist jedoch nicht ideal für die menschliche Planung. Wenn Sie ein zukünftiges Ereignis haben, das zu einem bestimmten Zeitpunkt stattfinden soll, möchten Sie diese Zeit mit einer Zeichenfolge speichern, die in ein datetime-Objekt oder ein serialisiertes datetime-Objekt analysiert werden kann (diese werden später beschrieben).
time.ctime
Sie können die aktuelle Uhrzeit auch auf die von Ihrem Betriebssystem bevorzugte Weise darstellen (was bedeutet, dass sie sich ändern kann, wenn Sie Ihre Systemeinstellungen ändern. Verlassen Sie sich also nicht darauf, dass dies auf allen Systemen Standard ist, wie ich es von anderen erwartet habe). . Dies ist normalerweise benutzerfreundlich, führt jedoch normalerweise nicht zu Zeichenfolgen, die chronologisch sortiert werden können:
>>> time.ctime()'Tue Feb 17 23:21:56 2015'
Sie können Zeitstempel auch in eine für Menschen lesbare Form bringen ctime:
>>> time.ctime(1424233311.771502)'Tue Feb 17 23:21:51 2015'
Diese Konvertierung eignet sich auch nicht zum Aufzeichnen von Aufzeichnungen (außer in Texten, die nur von Menschen analysiert werden - und mit verbesserter optischer Zeichenerkennung und künstlicher Intelligenz wird sich die Anzahl dieser Fälle meiner Meinung nach verringern).
datetime Modul
Das datetimeModul ist auch hier sehr nützlich:
>>>import datetime
datetime.datetime.now
Dies datetime.nowist eine Klassenmethode, die die aktuelle Zeit zurückgibt. Es wird die time.localtimeohne Zeitzoneninfo verwendet (falls nicht angegeben, andernfalls siehe unten stehende Zeitzone). Es verfügt über eine Darstellung (mit der Sie ein äquivalentes Objekt neu erstellen können), die auf der Shell wiedergegeben wird. Wenn sie jedoch gedruckt (oder zu a gezwungen str) wird, liegt sie im lesbaren (und nahezu ISO-) Format vor, und die lexikografische Sortierung entspricht der chronologische Sortierung:
UTC ist ein Zeitstandard, der nahezu der GMT-Zeitzone entspricht. (Während sich GMT und UTC für die Sommerzeit nicht ändern, können ihre Benutzer im Sommer zu anderen Zeitzonen wie der britischen Sommerzeit wechseln.)
datetime timezone bewusst
Keines der bisher erstellten datetime-Objekte kann jedoch problemlos in verschiedene Zeitzonen konvertiert werden. Wir können dieses Problem mit dem pytzModul lösen :
>>>import pytz
>>> then = datetime.datetime.now(pytz.utc)>>> then
datetime.datetime(2015,2,18,4,55,58,753949, tzinfo=<UTC>)
Entsprechend haben wir in Python 3 die timezoneKlasse mit einer timezoneangehängten utc- Instanz, die auch die Zeitzone des Objekts bewusst macht (aber das Konvertieren in eine andere Zeitzone ohne das praktische pytzModul bleibt dem Leser als Übung überlassen):
Sie können ein naives datetime-Objekt auch mit der pytzZeitzonenmethode localizeoder durch Ersetzen des tzinfo-Attributs (mit replace, dies geschieht blind) bekannt machen. Dies sind jedoch mehr letzte Mittel als bewährte Methoden:
Das pytzModul ermöglicht es uns, die datetimeZeitzone unserer Objekte bekannt zu machen und die Zeiten in die Hunderte von Zeitzonen umzuwandeln, die im pytzModul verfügbar sind .
Man könnte angeblich dieses Objekt für die UTC - Zeit und Speicher serialisiert wird, dass in einer Datenbank, aber es wäre viel mehr Speicher und seinen fehleranfälliger als nur die Speicherung die Unix - Epoche Zeit erfordern, die ich zum ersten Mal unter Beweis gestellt.
Die anderen Arten der Anzeige von Zeiten sind viel fehleranfälliger, insbesondere wenn Daten verarbeitet werden, die aus verschiedenen Zeitzonen stammen können. Sie möchten, dass keine Verwirrung darüber besteht, für welche Zeitzone eine Zeichenfolge oder ein serialisiertes Datum / Uhrzeit-Objekt bestimmt war.
Wenn Sie die Zeit mit Python für den Benutzer anzeigen, ctimefunktioniert dies gut, nicht in einer Tabelle (normalerweise nicht gut sortiert), sondern möglicherweise in einer Uhr. Ich persönlich empfehle jedoch, wenn Sie sich mit Zeit in Python befassen, entweder Unix-Zeit oder ein zeitzonenbewusstes UTC- datetimeObjekt zu verwenden.
Fragen Sie das US Naval Observatory , den offiziellen Zeitnehmer der United States Navy.
import requests
from lxml import html
page = requests.get('http://tycho.usno.navy.mil/cgi-bin/timer.pl')
tree = html.fromstring(page.content)print(tree.xpath('//html//body//h3//pre/text()')[1])
Wenn Sie im DC-Bereich leben (wie ich), ist die Latenz möglicherweise nicht schlecht ...
@ C8H10N4O2 Während Sie richtig sind, dass die anderen Antworten davon ausgehen, dass Ihr Computer bereits die richtige Zeit kennt, geht diese Antwort davon aus, dass der Computer eine Verbindung zum Internet hat, dass Sie sich in den USA befinden und dass diese Datei niemals entfernt wird. Ändern Sie den Link. Weit mehr Annahmen in dieser Antwort als akzeptiert. Trotzdem klug
Sudobangbang
33
Verwenden Sie Pandas , um die aktuelle Zeit zu ermitteln, um das vorliegende Problem zu überwinden:
import pandas as pd
print(pd.datetime.now())print(pd.datetime.now().date())print(pd.datetime.now().year)print(pd.datetime.now().month)print(pd.datetime.now().day)print(pd.datetime.now().hour)print(pd.datetime.now().minute)print(pd.datetime.now().second)print(pd.datetime.now().microsecond)
>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")01/09/201513:11
Diese Tabelle ist auch eine notwendige Referenz für die Auswahl der geeigneten Formatcodes, damit das Datum genau so formatiert wird, wie Sie es möchten (aus der Python-Dokumentation "datetime" hier ).
strftime(time_format)Gibt die aktuelle Ortszeit als Zeichenfolge zurück, die der angegebenen entspricht time_format. Hinweis: time.strftime()und datetime.strftime()unterstützt verschiedene Direktivensätze, z. B. %zwird von time.strftime()Python 2 nicht unterstützt .
JFS
1
Ist es besser, datetime anstelle von time zu verwenden?
Kristen G.
2
Viele timeModulfunktionen sind Thin Wrapper um entsprechende C-Funktionen. datetimeist eine höhere Ebene und es ist in der Regel tragbarer.
JFS
24
Wenn Sie numpy bereits verwenden, können Sie direkt die Funktion numpy.datetime64 () verwenden.
import numpy as np
str(np.datetime64('now'))
für nur Datum:
str(np.datetime64('today'))
Wenn Sie bereits Pandas verwenden, können Sie die Funktion pandas.to_datetime () verwenden
datetime.now()Gibt die aktuelle Zeit als naives Datum / Uhrzeit-Objekt zurück, das die Zeit in der lokalen Zeitzone darstellt. Dieser Wert kann mehrdeutig sein, z. B. während der Sommerzeitübergänge ("Fallback"). Um Mehrdeutigkeiten zu vermeiden, sollte eine der UTC-Zeitzonen verwendet werden:
from datetime import datetime
utc_time = datetime.utcnow()print(utc_time)# -> 2014-12-22 22:48:59.916417
Oder ein zeitzonenbewusstes Objekt, an das die entsprechenden Zeitzoneninformationen angehängt sind (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
import datetime
date_time = datetime.datetime.now()
date = date_time.date()# Gives the date
time = date_time.time()# Gives the timeprint date.year, date.month, date.day
print time.hour, time.minute, time.second, time.microsecond
Do dir(date)oder beliebige Variablen einschließlich des Pakets. Sie können alle Attribute und Methoden abrufen, die der Variablen zugeordnet sind.
Ich denke, Sie wollen "datetime.now (). Strftime (...)"
sagen
Ja, es kann so gemacht werden, wie du es gesagt hast. "datetime.datetime.now (). strftime ("% H:% M:% S:% MS ")"
user2030113
3
% MS gibt Ihnen keine Millisekunden !!
ZF007
15
Standardmäßig gibt die now()Funktion die Ausgabe im YYYY-MM-DD HH:MM:SS:MSFormat zurück. Verwenden Sie das folgende Beispielskript, um das aktuelle Datum und die aktuelle Uhrzeit in einem Python-Skript abzurufen und die Ergebnisse auf dem Bildschirm zu drucken. Erstellen Sie eine Datei getDateTime1.pymit dem folgenden Inhalt.
Diese Frage braucht nicht nur deswegen eine neue Antwort ... ein glänzendes neues Spielzeug / Modul ist jedoch eine ausreichende Rechtfertigung. Das ist die Pendelbibliothek , die die Art von Dingen zu tun scheint, die Pfeil versucht hat, außer ohne die inhärenten Fehler und Bugs, die Pfeil betreffen.
Zum Beispiel die Antwort auf die ursprüngliche Frage:
Es gibt viele Standards, die angesprochen werden müssen, einschließlich mehrerer RFCs und ISOs, um die man sich Sorgen machen muss. Lass sie immer durcheinander bringen; Keine Sorge, werfen Sie einen Blick darauf. dir(pendulum.constants)Es gibt jedoch ein bisschen mehr als nur RFC- und ISO-Formate.
Wenn wir lokal sagen, was meinen wir dann? Nun, ich meine:
Und weiter geht es. Lange Rede, kurzer Sinn: Pendel versucht, für Datum und Uhrzeit zu tun, was Anfragen für HTTP getan haben. Es ist eine Überlegung wert, insbesondere wegen seiner Benutzerfreundlichkeit und der umfangreichen Dokumentation.
Ich möchte die Zeit mit Millisekunden bekommen. Ein einfacher Weg, um sie zu bekommen:
import time, datetime
print(datetime.datetime.now().time())# 11:20:08.272239# Or in a more complicated wayprint(datetime.datetime.now().time().isoformat())# 11:20:08.272239print(datetime.datetime.now().time().strftime('%H:%M:%S.%f'))# 11:20:08.272239# But do not use this:print(time.strftime("%H:%M:%S.%f", time.localtime()), str)# 11:20:08.%f
Aber ich will nur Millisekunden , oder? Der kürzeste Weg, um sie zu bekommen:
import time
time.strftime("%H:%M:%S", time.localtime())+'.%d'%(time.time()%1*1000)# 11:34:23.751
Fügen Sie Nullen zur letzten Multiplikation hinzu oder entfernen Sie sie, um die Anzahl der Dezimalstellen anzupassen, oder einfach:
Das Folgende ist, was ich benutze, um die Zeit zu erhalten, ohne formatieren zu müssen. Einige Leute mögen die Split-Methode nicht, aber sie ist hier nützlich:
Weil es noch niemand erwähnt hat und dies etwas ist, auf das ich kürzlich gestoßen bin ... Die fromutc () -Methode einer Pytz-Zeitzone in Kombination mit utcnow () von datetime ist der beste Weg, um eine nützliche aktuelle Uhrzeit (und ein Datum) zu erhalten. in jeder Zeitzone.
Überraschenderweise wurden in allen obigen Antworten keine Zeitzonen erwähnt. Sie sollten auch strftime einschließen, um das gewünschte Format zu erhalten.
GraphicalDot
1
Ich habe das nicht aufgenommen, da es bereits in anderen Antworten behandelt wurde (und die Formatierung der Anzeige nicht Teil der Frage war).
Kungphu
7
Diese Frage bezieht sich auf Python. Da Django jedoch eines der am häufigsten verwendeten Frameworks für Python ist, ist es wichtig zu beachten, dass Sie Django immer timezone.now()anstelle von verwenden können datetime.datetime.now(). Ersteres ist zeitzonenbewusst, letzteres nicht.
Antworten:
Verwenden:
Und genau die Zeit:
Siehe die DokumentationWeitere Informationen finden .
Um die Eingabe zu speichern, können Sie das
datetime
Objekt aus demdatetime
Modul importieren :Entfernen Sie dann die Leitung
datetime.
von allen oben genannten.quelle
datetime.datetime.now()
ich nur meine interaktive Python 2.7-Konsole eingebe (IronPython wurde noch nicht aktualisiert), verhalte ich das gleiche Verhalten wie im neueren Beispielprint()
in der Antwort. Ich habe nicht erfolgreich repliziert, was die ursprüngliche Antwort zeigt (datetime.datetime (2009, 1, 6, 15, 8, 24, 78915)). (Nicht, dass ich wirklich möchte, das print () -Verhalten wird bevorzugt, aber ich bin neugierig.)datetime.now()
alleineprint(datetime.now())
Sie können verwenden
time.strftime()
:quelle
time
Modul gegen dasdatetime
Modul verwenden?localtime()
anstelle vongmtime()
, um Ihre Ortszeit abzurufen .datetime
vs.time
.In diesem Beispiel sieht die Ausgabe folgendermaßen aus:
'2013-09-18 11:16:32'
Hier ist die Liste der
strftime
Richtlinien .quelle
Ähnlich wie Harleys Antwort , aber verwenden Sie die
str()
Funktion für ein schnelles, etwas besser lesbares Format:quelle
Das
time
ModulDas
time
Modul bietet Funktionen, die die Zeit in "Sekunden seit der Epoche" sowie andere Dienstprogramme anzeigen.Unix-Epochenzeit
Dies ist das Format, in dem Sie Zeitstempel zum Speichern in Datenbanken erhalten sollten. Es ist eine einfache Gleitkommazahl, die in eine Ganzzahl konvertiert werden kann. Es ist auch gut für die Arithmetik in Sekunden, da es die Anzahl der Sekunden seit dem 1. Januar 1970 um 00:00:00 Uhr darstellt und im Vergleich zu den anderen Zeitdarstellungen, die wir als nächstes betrachten werden, Speicherlicht ist:
Dieser Zeitstempel berücksichtigt keine Schaltsekunden, ist also nicht linear - Schaltsekunden werden ignoriert. Obwohl es nicht dem internationalen UTC-Standard entspricht, ist es nahe beieinander und daher für die meisten Fälle von Aufzeichnungen recht gut.
Dies ist jedoch nicht ideal für die menschliche Planung. Wenn Sie ein zukünftiges Ereignis haben, das zu einem bestimmten Zeitpunkt stattfinden soll, möchten Sie diese Zeit mit einer Zeichenfolge speichern, die in ein datetime-Objekt oder ein serialisiertes datetime-Objekt analysiert werden kann (diese werden später beschrieben).
time.ctime
Sie können die aktuelle Uhrzeit auch auf die von Ihrem Betriebssystem bevorzugte Weise darstellen (was bedeutet, dass sie sich ändern kann, wenn Sie Ihre Systemeinstellungen ändern. Verlassen Sie sich also nicht darauf, dass dies auf allen Systemen Standard ist, wie ich es von anderen erwartet habe). . Dies ist normalerweise benutzerfreundlich, führt jedoch normalerweise nicht zu Zeichenfolgen, die chronologisch sortiert werden können:
Sie können Zeitstempel auch in eine für Menschen lesbare Form bringen
ctime
:Diese Konvertierung eignet sich auch nicht zum Aufzeichnen von Aufzeichnungen (außer in Texten, die nur von Menschen analysiert werden - und mit verbesserter optischer Zeichenerkennung und künstlicher Intelligenz wird sich die Anzahl dieser Fälle meiner Meinung nach verringern).
datetime
ModulDas
datetime
Modul ist auch hier sehr nützlich:datetime.datetime.now
Dies
datetime.now
ist eine Klassenmethode, die die aktuelle Zeit zurückgibt. Es wird dietime.localtime
ohne Zeitzoneninfo verwendet (falls nicht angegeben, andernfalls siehe unten stehende Zeitzone). Es verfügt über eine Darstellung (mit der Sie ein äquivalentes Objekt neu erstellen können), die auf der Shell wiedergegeben wird. Wenn sie jedoch gedruckt (oder zu a gezwungenstr
) wird, liegt sie im lesbaren (und nahezu ISO-) Format vor, und die lexikografische Sortierung entspricht der chronologische Sortierung:Datum / Uhrzeit
utcnow
Sie können ein Datum / Uhrzeit-Objekt in UTC-Zeit, einem globalen Standard, auf folgende Weise abrufen:
UTC ist ein Zeitstandard, der nahezu der GMT-Zeitzone entspricht. (Während sich GMT und UTC für die Sommerzeit nicht ändern, können ihre Benutzer im Sommer zu anderen Zeitzonen wie der britischen Sommerzeit wechseln.)
datetime timezone bewusst
Keines der bisher erstellten datetime-Objekte kann jedoch problemlos in verschiedene Zeitzonen konvertiert werden. Wir können dieses Problem mit dem
pytz
Modul lösen :Entsprechend haben wir in Python 3 die
timezone
Klasse mit einertimezone
angehängten utc- Instanz, die auch die Zeitzone des Objekts bewusst macht (aber das Konvertieren in eine andere Zeitzone ohne das praktischepytz
Modul bleibt dem Leser als Übung überlassen):Und wir sehen, dass wir vom ursprünglichen utc-Objekt leicht in Zeitzonen konvertieren können.
Sie können ein naives datetime-Objekt auch mit der
pytz
Zeitzonenmethodelocalize
oder durch Ersetzen des tzinfo-Attributs (mitreplace
, dies geschieht blind) bekannt machen. Dies sind jedoch mehr letzte Mittel als bewährte Methoden:Das
pytz
Modul ermöglicht es uns, diedatetime
Zeitzone unserer Objekte bekannt zu machen und die Zeiten in die Hunderte von Zeitzonen umzuwandeln, die impytz
Modul verfügbar sind .Man könnte angeblich dieses Objekt für die UTC - Zeit und Speicher serialisiert wird, dass in einer Datenbank, aber es wäre viel mehr Speicher und seinen fehleranfälliger als nur die Speicherung die Unix - Epoche Zeit erfordern, die ich zum ersten Mal unter Beweis gestellt.
Die anderen Arten der Anzeige von Zeiten sind viel fehleranfälliger, insbesondere wenn Daten verarbeitet werden, die aus verschiedenen Zeitzonen stammen können. Sie möchten, dass keine Verwirrung darüber besteht, für welche Zeitzone eine Zeichenfolge oder ein serialisiertes Datum / Uhrzeit-Objekt bestimmt war.
Wenn Sie die Zeit mit Python für den Benutzer anzeigen,
ctime
funktioniert dies gut, nicht in einer Tabelle (normalerweise nicht gut sortiert), sondern möglicherweise in einer Uhr. Ich persönlich empfehle jedoch, wenn Sie sich mit Zeit in Python befassen, entweder Unix-Zeit oder ein zeitzonenbewusstes UTC-datetime
Objekt zu verwenden.quelle
Tun
t
- Float-Nummer, gut für die Zeitintervallmessung.Es gibt einige Unterschiede für Unix- und Windows-Plattformen.
quelle
Das gibt die aktuelle GMT im angegebenen Format aus. Es gibt auch eine
localtime()
Methode.Diese Seite enthält weitere Details.
quelle
Die vorherigen Antworten sind alle gute Vorschläge, aber ich finde es am einfachsten zu verwenden
ctime()
:Dies ergibt eine schön formatierte Zeichenfolgendarstellung der aktuellen Ortszeit.
quelle
Der schnellste Weg ist:
quelle
Wenn Sie die aktuelle Zeit als
time
Objekt benötigen :quelle
.isoformat()
ist in der Dokumentation, aber noch nicht hier (dies ähnelt stark der Antwort von @Ray Vega):quelle
Fragen Sie das US Naval Observatory , den offiziellen Zeitnehmer der United States Navy.
Wenn Sie im DC-Bereich leben (wie ich), ist die Latenz möglicherweise nicht schlecht ...
quelle
Verwenden Sie Pandas , um die aktuelle Zeit zu ermitteln, um das vorliegende Problem zu überwinden:
Ausgabe:
quelle
Das ist, was ich am Ende gemacht habe:
Diese Tabelle ist auch eine notwendige Referenz für die Auswahl der geeigneten Formatcodes, damit das Datum genau so formatiert wird, wie Sie es möchten (aus der Python-Dokumentation "datetime" hier ).
quelle
strftime(time_format)
Gibt die aktuelle Ortszeit als Zeichenfolge zurück, die der angegebenen entsprichttime_format
. Hinweis:time.strftime()
unddatetime.strftime()
unterstützt verschiedene Direktivensätze, z. B.%z
wird vontime.strftime()
Python 2 nicht unterstützt .time
Modulfunktionen sind Thin Wrapper um entsprechende C-Funktionen.datetime
ist eine höhere Ebene und es ist in der Regel tragbarer.Wenn Sie numpy bereits verwenden, können Sie direkt die Funktion numpy.datetime64 () verwenden.
für nur Datum:
Wenn Sie bereits Pandas verwenden, können Sie die Funktion pandas.to_datetime () verwenden
oder,
quelle
Sie können das
time
Modul verwenden:Die Verwendung des Kapitals
Y
ergibt das ganze Jahr, und die Verwendungy
würde geben06/02/15
.Sie können auch den folgenden Code verwenden, um eine längere Zeitspanne anzugeben:
quelle
datetime.now()
Gibt die aktuelle Zeit als naives Datum / Uhrzeit-Objekt zurück, das die Zeit in der lokalen Zeitzone darstellt. Dieser Wert kann mehrdeutig sein, z. B. während der Sommerzeitübergänge ("Fallback"). Um Mehrdeutigkeiten zu vermeiden, sollte eine der UTC-Zeitzonen verwendet werden:Oder ein zeitzonenbewusstes Objekt, an das die entsprechenden Zeitzoneninformationen angehängt sind (Python 3.2+):
quelle
Do
dir(date)
oder beliebige Variablen einschließlich des Pakets. Sie können alle Attribute und Methoden abrufen, die der Variablen zugeordnet sind.quelle
import datetime
dann ist esdatetime.datetime.now()
\ n wennfrom datetime import datetime
dann ist esdatetime.now()
quelle
Standardmäßig gibt die
now()
Funktion die Ausgabe imYYYY-MM-DD HH:MM:SS:MS
Format zurück. Verwenden Sie das folgende Beispielskript, um das aktuelle Datum und die aktuelle Uhrzeit in einem Python-Skript abzurufen und die Ergebnisse auf dem Bildschirm zu drucken. Erstellen Sie eine DateigetDateTime1.py
mit dem folgenden Inhalt.Die Ausgabe sieht wie folgt aus:
quelle
Diese Frage braucht nicht nur deswegen eine neue Antwort ... ein glänzendes neues Spielzeug / Modul ist jedoch eine ausreichende Rechtfertigung. Das ist die Pendelbibliothek , die die Art von Dingen zu tun scheint, die Pfeil versucht hat, außer ohne die inhärenten Fehler und Bugs, die Pfeil betreffen.
Zum Beispiel die Antwort auf die ursprüngliche Frage:
Es gibt viele Standards, die angesprochen werden müssen, einschließlich mehrerer RFCs und ISOs, um die man sich Sorgen machen muss. Lass sie immer durcheinander bringen; Keine Sorge, werfen Sie einen Blick darauf.
dir(pendulum.constants)
Es gibt jedoch ein bisschen mehr als nur RFC- und ISO-Formate.Wenn wir lokal sagen, was meinen wir dann? Nun, ich meine:
Vermutlich meinen die meisten von euch woanders.
Und weiter geht es. Lange Rede, kurzer Sinn: Pendel versucht, für Datum und Uhrzeit zu tun, was Anfragen für HTTP getan haben. Es ist eine Überlegung wert, insbesondere wegen seiner Benutzerfreundlichkeit und der umfangreichen Dokumentation.
quelle
Aktuelle Zeit einer Zeitzone
quelle
Probieren Sie das Pfeilmodul von http://crsmithdev.com/arrow/ aus :
Oder die UTC-Version:
Fügen Sie .format () hinzu, um die Ausgabe zu ändern:
Für eine bestimmte Zeitzone:
Vor einer Stunde:
Oder wenn Sie das Wesentliche wollen.
quelle
arrow.now('Time/Zone')
für einige Zeitzonen fehlschlagen kann (arrow
Verwendungendateutil
, bei denen utc -> lokale Konvertierungen , die im Inneren verwendet werden , fehlerhaft sindarrow.now()
. Hinweis: Espytz
gibt kein solches Problem . Es gibt auch andere zeitzonenbezogene ProblemeIch möchte die Zeit mit Millisekunden bekommen. Ein einfacher Weg, um sie zu bekommen:
Aber ich will nur Millisekunden , oder? Der kürzeste Weg, um sie zu bekommen:
Fügen Sie Nullen zur letzten Multiplikation hinzu oder entfernen Sie sie, um die Anzahl der Dezimalstellen anzupassen, oder einfach:
quelle
Mit dieser Funktion können Sie die Uhrzeit abrufen (leider wird weder AM noch PM angezeigt):
Mit den folgenden Funktionen können Sie die Stunden, Minuten, Sekunden und Millisekunden später zusammenführen:
Stunde:
Minute:
Zweite:
Millisekunde:
quelle
Wenn Sie nur den aktuellen Zeitstempel in ms anzeigen möchten (z. B. um die Ausführungszeit zu messen), können Sie auch das Modul "timeit" verwenden:
quelle
Das Folgende ist, was ich benutze, um die Zeit zu erhalten, ohne formatieren zu müssen. Einige Leute mögen die Split-Methode nicht, aber sie ist hier nützlich:
Es wird im Format HH: MM: SS gedruckt.
quelle
Weil es noch niemand erwähnt hat und dies etwas ist, auf das ich kürzlich gestoßen bin ... Die fromutc () -Methode einer Pytz-Zeitzone in Kombination mit utcnow () von datetime ist der beste Weg, um eine nützliche aktuelle Uhrzeit (und ein Datum) zu erhalten. in jeder Zeitzone.
Wenn alles, was Sie wollen, die Zeit ist, können Sie das mit bekommen
local_time.time()
.quelle
Diese Frage bezieht sich auf Python. Da Django jedoch eines der am häufigsten verwendeten Frameworks für Python ist, ist es wichtig zu beachten, dass Sie Django immer
timezone.now()
anstelle von verwenden könnendatetime.datetime.now()
. Ersteres ist zeitzonenbewusst, letzteres nicht.Einzelheiten und Gründe dafür finden Sie in dieser SO-Antwort und im Django-Dokument
timezone.now()
.quelle
Sie können dies mit ctime () tun:
Ausgabe:
Sat Sep 14 21:27:08 2019
Diese Ausgaben sind unterschiedlich, da der von zurückgegebene Zeitstempel von
ctime()
Ihrem geografischen Standort abhängt.quelle