time — Zeitfunktionen und -konvertierungen¶
Dieses Modul stellt verschiedene zeitbezogene Funktionen bereit. Verwandte Funktionalitäten finden Sie auch in den Modulen datetime und calendar.
Obwohl dieses Modul immer verfügbar ist, sind nicht alle Funktionen auf allen Plattformen verfügbar. Die meisten Funktionen, die in diesem Modul definiert sind, rufen C-Bibliotheksfunktionen der Plattform mit demselben Namen auf. Es kann manchmal hilfreich sein, die Plattformdokumentation zu konsultieren, da die Semantik dieser Funktionen zwischen den Plattformen variiert.
Eine Erklärung einiger Terminologie und Konventionen ist angebracht.
Die Epoche ist der Zeitpunkt, an dem die Zeit beginnt, der Rückgabewert von
time.gmtime(0). Auf allen Plattformen ist dies der 1. Januar 1970, 00:00:00 (UTC).
Die Bezeichnung Sekunden seit der Epoche bezieht sich auf die Gesamtzahl der seit der Epoche vergangenen Sekunden, wobei typischerweise Schaltsekunden ausgeschlossen werden. Auf allen POSIX-konformen Plattformen werden Schaltsekunden von dieser Gesamtzahl ausgeschlossen.
Die Funktionen in diesem Modul verarbeiten möglicherweise keine Daten und Zeiten vor der Epoche oder weit in der Zukunft. Der zukünftige Endpunkt wird von der C-Bibliothek bestimmt; auf 32-Bit-Systemen liegt er typischerweise im Jahr 2038.
Die Funktion
strptime()kann zweistellige Jahre bei Verwendung des Formatcodes%yparsen. Wenn zweistellige Jahre geparst werden, werden sie gemäß den POSIX- und ISO-C-Standards konvertiert: Werte von 69–99 werden auf 1969–1999 abgebildet, und Werte von 0–68 werden auf 2000–2068 abgebildet.
UTC ist die Koordinierte Weltzeit und hat die Greenwich Mean Time oder GMT als Grundlage der internationalen Zeitmessung abgelöst. Die Abkürzung UTC ist kein Fehler, sondern entspricht einem früheren, sprachunabhängigen Benennungsschema für Zeitstandards wie UT0, UT1 und UT2.
DST ist die Sommerzeit, eine Anpassung der Zeitzone um (normalerweise) eine Stunde während eines Teils des Jahres. DST-Regeln sind magisch (bestimmt durch lokales Recht) und können sich von Jahr zu Jahr ändern. Die C-Bibliothek verfügt über eine Tabelle mit den lokalen Regeln (oft wird diese für mehr Flexibilität aus einer Systemdatei gelesen) und ist in dieser Hinsicht die einzige Quelle der wahren Weisheit.
Die Genauigkeit der verschiedenen Echtzeitfunktionen kann geringer sein, als die Einheiten, in denen ihr Wert oder ihr Argument ausgedrückt wird, vermuten lassen. Zum Beispiel tickt die Uhr auf den meisten Unix-Systemen nur 50 oder 100 Mal pro Sekunde.
Andererseits ist die Genauigkeit von
time()undsleep()besser als die ihrer Unix-Entsprechungen: Zeiten werden als Gleitkommazahlen ausgedrückt,time()gibt die genaueste verfügbare Zeit zurück (wobeigettimeofday()von Unix verwendet wird, wo verfügbar), undsleep()akzeptiert eine Zeit mit einem von Null verschiedenen Bruchteil (Unixselect()wird zur Implementierung verwendet, wo verfügbar).Der Zeitwert, wie er von
gmtime(),localtime()undstrptime()zurückgegeben und vonasctime(),mktime()undstrftime()akzeptiert wird, ist eine Sequenz von 9 Ganzzahlen. Die Rückgabewerte vongmtime(),localtime()undstrptime()bieten auch Attributnamen für einzelne Felder.Siehe
struct_timefür eine Beschreibung dieser Objekte.Geändert in Version 3.3: Der Typ
struct_timewurde erweitert, um die Attributetm_gmtoffundtm_zonebereitzustellen, wenn die Plattform entsprechendestruct tm-Mitglieder unterstützt.Geändert in Version 3.6: Die Attribute
tm_gmtoffundtm_zonevonstruct_timesind jetzt auf allen Plattformen verfügbar.Verwenden Sie die folgenden Funktionen, um zwischen Zeitdarstellungen zu konvertieren
Von
Nach
Verwenden
Sekunden seit der Epoche
struct_timein UTCSekunden seit der Epoche
struct_timein lokaler Zeitstruct_timein UTCSekunden seit der Epoche
struct_timein lokaler ZeitSekunden seit der Epoche
Funktionen¶
- time.asctime([t])¶
Konvertiert ein Tupel oder ein
struct_time, das eine Zeit darstellt, wie sie vongmtime()oderlocaltime()zurückgegeben wird, in eine Zeichenkette des folgenden Formats:'Son Jun 20 23:21:05 1993'. Das Tagesfeld ist zwei Zeichen lang und bei einstelligen Tagen mit Leerzeichen aufgefüllt, z. B.:'Mit Jun 9 04:26:40 1993'.Wenn t nicht angegeben ist, wird die aktuelle Zeit verwendet, wie sie von
localtime()zurückgegeben wird. Ländereinstellungsinformationen werden vonasctime()nicht verwendet.Hinweis
Im Gegensatz zur gleichnamigen C-Funktion fügt
asctime()keinen abschließenden Zeilenumbruch hinzu.
- time.pthread_getcpuclockid(thread_id)¶
Gibt die clk_id der threadspezifischen CPU-Zeitschaltuhr für die angegebene thread_id zurück.
Verwenden Sie
threading.get_ident()oder das Attributidentvonthreading.Thread-Objekten, um einen geeigneten Wert für thread_id zu erhalten.Warnung
Das Übergeben einer ungültigen oder abgelaufenen thread_id kann zu undefiniertem Verhalten führen, wie z. B. einem Segmentierungsfehler.
Verfügbarkeit: Unix
Weitere Informationen finden Sie in der Manpage für pthread_getcpuclockid(3).
Hinzugefügt in Version 3.7.
- time.clock_getres(clk_id)¶
Gibt die Auflösung (Genauigkeit) der angegebenen Uhr clk_id zurück. Siehe Uhr-ID-Konstanten für eine Liste akzeptierter Werte für clk_id.
Verfügbarkeit: Unix.
Hinzugefügt in Version 3.3.
- time.clock_gettime(clk_id) float¶
Gibt die Zeit der angegebenen Uhr clk_id zurück. Siehe Uhr-ID-Konstanten für eine Liste akzeptierter Werte für clk_id.
Verwenden Sie
clock_gettime_ns(), um den Präzisionsverlust durch denfloat-Typ zu vermeiden.Verfügbarkeit: Unix.
Hinzugefügt in Version 3.3.
- time.clock_gettime_ns(clk_id) int¶
Ähnlich wie
clock_gettime(), gibt aber die Zeit in Nanosekunden zurück.Verfügbarkeit: Unix.
Hinzugefügt in Version 3.7.
- time.clock_settime(clk_id, time: float)¶
Setzt die Zeit der angegebenen Uhr clk_id. Derzeit ist
CLOCK_REALTIMEder einzige akzeptierte Wert für clk_id.Verwenden Sie
clock_settime_ns(), um den Präzisionsverlust durch denfloat-Typ zu vermeiden.Verfügbarkeit: Unix, nicht Android, nicht iOS.
Hinzugefügt in Version 3.3.
- time.clock_settime_ns(clk_id, time: int)¶
Ähnlich wie
clock_settime(), setzt aber die Zeit in Nanosekunden.Verfügbarkeit: Unix, nicht Android, nicht iOS.
Hinzugefügt in Version 3.7.
- time.ctime([secs])¶
Konvertiert eine in Sekunden seit der Epoche ausgedrückte Zeit in eine Zeichenkette des Formats:
'Son Jun 20 23:21:05 1993', die die lokale Zeit darstellt. Das Tagesfeld ist zwei Zeichen lang und bei einstelligen Tagen mit Leerzeichen aufgefüllt, z. B.:'Mit Jun 9 04:26:40 1993'.Wenn secs nicht angegeben ist oder
Noneist, wird die aktuelle Zeit verwendet, wie sie vontime()zurückgegeben wird.ctime(secs)ist äquivalent zuasctime(localtime(secs)). Ländereinstellungsinformationen werden vonctime()nicht verwendet.
- time.get_clock_info(name)¶
Ruft Informationen über die angegebene Uhr als Namespace-Objekt ab. Unterstützte Uhrnamen und die entsprechenden Funktionen zum Lesen ihres Werts sind
'monotonic':time.monotonic()'perf_counter':time.perf_counter()'process_time':time.process_time()'thread_time':time.thread_time()'time':time.time()
Das Ergebnis hat die folgenden Attribute
adjustable:
True, wenn die Uhr vor- oder zurückgestellt werden kann,Falseandernfalls. Bezieht sich nicht auf schrittweise NTP-Rate-Anpassungen.implementation: Der Name der zugrundeliegenden C-Funktion, die zum Abrufen des Uhrwerts verwendet wird. Mögliche Werte finden Sie unter Uhr-ID-Konstanten.
monotonic:
True, wenn die Uhr nicht rückwärts laufen kann,Falseandernfallsresolution: Die Auflösung der Uhr in Sekunden (
float)
Hinzugefügt in Version 3.3.
- time.gmtime([secs])¶
Konvertiert eine in Sekunden seit der Epoche ausgedrückte Zeit in ein
struct_timein UTC, bei dem das dst-Flag immer Null ist. Wenn secs nicht angegeben ist oderNoneist, wird die aktuelle Zeit verwendet, wie sie vontime()zurückgegeben wird. Bruchteile von Sekunden werden ignoriert. Siehe oben für eine Beschreibung desstruct_time-Objekts. Siehecalendar.timegm()für die Umkehrfunktion dieser Funktion.
- time.localtime([secs])¶
Wie
gmtime(), konvertiert aber in lokale Zeit. Wenn secs nicht angegeben ist oderNoneist, wird die aktuelle Zeit verwendet, wie sie vontime()zurückgegeben wird. Das dst-Flag wird auf1gesetzt, wenn die Sommerzeit für die angegebene Zeit gilt.localtime()kannOverflowErrorauslösen, wenn der Zeitstempel außerhalb des Bereichs der von der plattformspezifischen C-Funktionlocaltime()odergmtime()unterstützten Werte liegt, undOSErrorbei einem Fehler vonlocaltime()odergmtime(). Dies ist häufig auf Jahre zwischen 1970 und 2038 beschränkt.
- time.mktime(t)¶
Dies ist die Umkehrfunktion von
localtime(). Ihr Argument ist dasstruct_timeoder ein volles 9-Tupel (da das dst-Flag benötigt wird; verwenden Sie-1als dst-Flag, wenn es unbekannt ist), das die Zeit in *lokaler* Zeit, nicht UTC, ausdrückt. Es gibt eine Gleitkommazahl zurück, zur Kompatibilität mittime(). Wenn der Eingabewert nicht als gültige Zeit dargestellt werden kann, wird entwederOverflowErroroderValueErrorausgelöst (abhängig davon, ob der ungültige Wert von Python oder den zugrunde liegenden C-Bibliotheken abgefangen wird). Das früheste Datum, für das es eine Zeit generieren kann, ist plattformabhängig.
- time.monotonic() float¶
Gibt den Wert (in Bruchteilen von Sekunden) einer monotonen Uhr zurück, d. h. einer Uhr, die nicht rückwärts laufen kann. Die Uhr wird von Systemuhr-Updates nicht beeinflusst. Der Referenzpunkt des zurückgegebenen Werts ist undefiniert, sodass nur die Differenz zwischen den Ergebnissen zweier Aufrufe gültig ist.
Uhr
Unter Windows rufen Sie
QueryPerformanceCounter()undQueryPerformanceFrequency()auf.Unter macOS rufen Sie
mach_absolute_time()undmach_timebase_info()auf.Unter HP-UX rufen Sie
gethrtime()auf.Rufen Sie
clock_gettime(CLOCK_HIGHRES)auf, falls verfügbar.Andernfalls rufen Sie
clock_gettime(CLOCK_MONOTONIC)auf.
Verwenden Sie
monotonic_ns(), um den Präzisionsverlust durch denfloat-Typ zu vermeiden.Hinzugefügt in Version 3.3.
Geändert in Version 3.5: Die Funktion ist jetzt immer verfügbar und die Uhr ist jetzt für alle Prozesse gleich.
Geändert in Version 3.10: Unter macOS ist die Uhr jetzt für alle Prozesse gleich.
- time.monotonic_ns() int¶
Ähnlich wie
monotonic(), gibt aber die Zeit in Nanosekunden zurück.Hinzugefügt in Version 3.7.
- time.perf_counter() float¶
Gibt den Wert (in Bruchteilen von Sekunden) eines Performance-Counters zurück, d. h. einer Uhr mit der höchsten verfügbaren Auflösung zur Messung kurzer Zeitspannen. Sie enthält auch die Zeit, die während des Schlafens verstrichen ist. Die Uhr ist für alle Prozesse gleich. Der Referenzpunkt des zurückgegebenen Werts ist undefiniert, sodass nur die Differenz zwischen den Ergebnissen zweier Aufrufe gültig ist.
CPython-Implementierungsdetail: In CPython wird dieselbe Uhr wie
time.monotonic()verwendet und es handelt sich um eine monotone Uhr, d. h. eine Uhr, die nicht rückwärts laufen kann.Verwenden Sie
perf_counter_ns(), um den Präzisionsverlust durch denfloat-Typ zu vermeiden.Hinzugefügt in Version 3.3.
Geändert in Version 3.10: Unter Windows ist die Uhr jetzt für alle Prozesse gleich.
Geändert in Version 3.13: Verwendet dieselbe Uhr wie
time.monotonic().
- time.perf_counter_ns() int¶
Ähnlich wie
perf_counter(), gibt aber die Zeit in Nanosekunden zurück.Hinzugefügt in Version 3.7.
- time.process_time() float¶
Gibt den Wert (in Bruchteilen von Sekunden) der Summe der System- und Benutzer-CPU-Zeit des aktuellen Prozesses zurück. Die Zeit, die während des Schlafens verstrichen ist, wird nicht einbezogen. Sie ist per Definition prozessweit. Der Referenzpunkt des zurückgegebenen Werts ist undefiniert, sodass nur die Differenz zwischen den Ergebnissen zweier Aufrufe gültig ist.
Verwenden Sie
process_time_ns(), um den Präzisionsverlust durch denfloat-Typ zu vermeiden.Hinzugefügt in Version 3.3.
- time.process_time_ns() int¶
Ähnlich wie
process_time(), gibt aber die Zeit in Nanosekunden zurück.Hinzugefügt in Version 3.7.
- time.sleep(secs)¶
Setzt die Ausführung des aufrufenden Threads für die angegebene Anzahl von Sekunden aus. Das Argument kann eine Gleitkommazahl sein, um eine präzisere Schlafzeit anzugeben.
Wenn der Schlaf durch ein Signal unterbrochen wird und die Signalbehandlung keine Ausnahme auslöst, wird der Schlaf mit einer neu berechneten Timeout-Dauer neu gestartet.
Die Aussetzungszeit kann aufgrund der Planung anderer Aktivitäten im System beliebig länger als angefordert sein.
Windows-Implementierung
Unter Windows gibt der Thread den Rest seiner Zeitscheibe an jeden anderen Thread, der bereit ist, ausgeführt zu werden, ab, wenn secs Null ist. Wenn keine anderen Threads bereit sind, wird die Funktion sofort zurückgegeben und der Thread fährt mit der Ausführung fort. Unter Windows 8.1 und neuer verwendet die Implementierung einen Hochtontimer, der eine Auflösung von 100 Nanosekunden bietet. Wenn secs Null ist, wird
Sleep(0)verwendet.Unix-Implementierung
Verwendet
clock_nanosleep(), falls verfügbar (Auflösung: 1 Nanosekunde);Oder verwenden Sie
nanosleep(), falls verfügbar (Auflösung: 1 Nanosekunde);Oder verwenden Sie
select()(Auflösung: 1 Mikrosekunde).
Hinweis
Um eine "No-Op" (keine Operation) zu emulieren, verwenden Sie
passanstelle vontime.sleep(0).Um die CPU freiwillig freizugeben, geben Sie eine Echtzeit- Scheduling-Richtlinie an und verwenden Sie stattdessen
os.sched_yield().Löst ein Auditing-Ereignis
time.sleepmit dem Argumentsecsaus.Geändert in Version 3.5: Die Funktion schläft nun mindestens secs, auch wenn der Schlaf durch ein Signal unterbrochen wird, es sei denn, der Signalhandler löst eine Ausnahme aus (siehe PEP 475 für die Begründung).
Geändert in Version 3.11: Unter Unix werden nun, falls verfügbar, die Funktionen
clock_nanosleep()undnanosleep()verwendet. Unter Windows wird nun ein wartbarer Timer verwendet.Geändert in Version 3.13: Löst ein Auditing-Ereignis aus.
- time.strftime(format[, t])¶
Konvertiert ein Tupel oder
struct_time, das eine Zeit darstellt, wie sie vongmtime()oderlocaltime()zurückgegeben wird, in einen String gemäß dem Argument format. Wenn t nicht angegeben ist, wird die aktuelle Zeit verwendet, wie sie vonlocaltime()zurückgegeben wird. format muss ein String sein.ValueErrorwird ausgelöst, wenn ein Feld in t außerhalb des zulässigen Bereichs liegt.0 ist ein gültiges Argument für jede Position im Zeit-Tupel; wenn es normalerweise ungültig ist, wird der Wert auf einen korrekten Wert gezwungen.
Die folgenden Direktiven können in den format-String eingebettet werden. Sie werden ohne die optionale Angabe von Feldbreite und Präzision angezeigt und durch die angegebenen Zeichen im Ergebnis von
strftime()ersetzt.Direktive
Bedeutung
Hinweise
%aAbgekürzter Wochentagsname der Locale.
%AVollständiger Wochentagsname der Locale.
%bAbgekürzter Monatsname der Locale.
%BVollständiger Monatsname der Locale.
%cAngemessene Datums- und Zeitdarstellung der Locale.
%dTag des Monats als Dezimalzahl [01,31].
%f- Mikrosekunden als Dezimalzahl
[000000,999999].
(1)
%HStunde (24-Stunden-Format) als Dezimalzahl [00,23].
%IStunde (12-Stunden-Format) als Dezimalzahl [01,12].
%jTag des Jahres als Dezimalzahl [001,366].
%mMonat als Dezimalzahl [01,12].
%MMinute als Dezimalzahl [00,59].
%pLocale-Entsprechung von AM oder PM.
(2)
%SSekunde als Dezimalzahl [00,61].
(3)
%UKalenderwoche des Jahres (Sonntag als erster Tag der Woche) als Dezimalzahl [00,53]. Alle Tage in einem neuen Jahr vor dem ersten Sonntag gelten als in Woche 0.
(4)
%uTag der Woche (Montag ist 1; Sonntag ist 7) als Dezimalzahl [1, 7].
%wWochentag als Dezimalzahl [0(Sonntag),6].
%WKalenderwoche des Jahres (Montag als erster Tag der Woche) als Dezimalzahl [00,53]. Alle Tage in einem neuen Jahr vor dem ersten Montag gelten als in Woche 0.
(4)
%xAngemessene Datumsdarstellung der Locale.
%XAngemessene Zeitdarstellung der Locale.
%yJahr ohne Jahrhundert als Dezimalzahl [00,99].
%YJahr mit Jahrhundert als Dezimalzahl.
%zZeitzonen-Offset, der eine positive oder negative Zeitdifferenz zu UTC/GMT im Format +HHMM oder -HHMM angibt, wobei H für Dezimalstundenziffern und M für Dezimalminutenziffern steht [-23:59, +23:59]. [1]
%ZZeitzonenname (keine Zeichen, wenn keine Zeitzone existiert). Veraltet. [1]
%GISO 8601-Jahr (ähnlich wie
%Y, folgt aber den Regeln für das ISO 8601-Kalenderjahr). Das Jahr beginnt mit der Woche, die den ersten Donnerstag des Kalenderjahres enthält.%VISO 8601-Kalenderwoche (als Dezimalzahl [01,53]). Die erste Woche des Jahres ist diejenige, die den ersten Donnerstag des Jahres enthält. Wochen beginnen am Montag.
%%Ein literales
'%'-Zeichen.Hinweise
Die Format-Direktive
%fgilt nur fürstrptime(), nicht fürstrftime(). Siehe jedoch auchdatetime.datetime.strptime()unddatetime.datetime.strftime(), wo die Format-Direktive%ffür Mikrosekunden gilt.Wenn die Direktive
%pmit der Funktionstrptime()verwendet wird, beeinflusst sie nur das Ausgabe-Stundenfeld, wenn die Direktive%Izum Parsen der Stunde verwendet wird.
Der Bereich ist tatsächlich
0bis61; der Wert60ist in Zeitstempeln, die Schaltsekunden darstellen, gültig, und der Wert61wird aus historischen Gründen unterstützt.Bei Verwendung mit der Funktion
strptime()werden%Uund%Wnur in Berechnungen verwendet, wenn der Wochentag und das Jahr angegeben sind.
Hier ist ein Beispiel für ein Format für Daten, das mit dem im RFC 2822 Internet-E-Mail-Standard angegebenen Format kompatibel ist. [1]
>>> from time import gmtime, strftime >>> strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()) 'Thu, 28 Jun 2001 14:17:15 +0000'
Zusätzliche Direktiven können auf bestimmten Plattformen unterstützt werden, aber nur die hier aufgeführten haben eine Bedeutung, die durch ANSI C standardisiert ist. Um die vollständige Menge der auf Ihrer Plattform unterstützten Formatcodes zu sehen, konsultieren Sie die Dokumentation zu strftime(3).
Auf einigen Plattformen kann eine optionale Angabe der Feldbreite und Präzision dem anfänglichen
'%'einer Direktive in der folgenden Reihenfolge folgen; dies ist ebenfalls nicht portabel. Die Feldbreite beträgt normalerweise 2, außer für%j, wo sie 3 beträgt.
- time.strptime(string[, format])¶
Parst einen String, der eine Zeit darstellt, gemäß einem Format. Der Rückgabewert ist ein
struct_time, wie er vongmtime()oderlocaltime()zurückgegeben wird.Der Parameter format verwendet dieselben Direktiven wie
strftime(); er hat standardmäßig"%a %b %d %H:%M:%S %Y", was der Formatierung entspricht, die vonctime()zurückgegeben wird. Wenn string nicht gemäß format geparst werden kann oder überschüssige Daten nach dem Parsen enthält, wirdValueErrorausgelöst. Die Standardwerte, die zum Auffüllen fehlender Daten verwendet werden, wenn keine genaueren Werte abgeleitet werden können, sind(1900, 1, 1, 0, 0, 0, 0, 1, -1). Sowohl string als auch format müssen Strings sein.Zum Beispiel
>>> import time >>> time.strptime("30 Nov 00", "%d %b %y") time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
Die Unterstützung für die Direktive
%Zbasiert auf den intznameenthaltenen Werten und obdaylightwahr ist. Aus diesem Grund ist sie plattformspezifisch, abgesehen von der Erkennung von UTC und GMT, die immer bekannt sind (und als Zeitzonen ohne Sommerzeit gelten).Nur die in der Dokumentation angegebenen Direktiven werden unterstützt. Da
strftime()plattformspezifisch implementiert ist, kann sie manchmal mehr Direktiven anbieten als hier aufgeführt.strptime()ist jedoch unabhängig von jeder Plattform und unterstützt daher nicht notwendigerweise alle verfügbaren Direktiven, die nicht als unterstützt dokumentiert sind.
- class time.struct_time¶
Der Typ der Zeitwertsequenz, die von
gmtime(),localtime()undstrptime()zurückgegeben wird. Es ist ein Objekt mit einer Named-Tuple-Schnittstelle: Werte können nach Index und nach Attributnamen zugegriffen werden. Die folgenden Werte sind vorhanden:Index
Attribut
Werte
0
- tm_year¶
(z.B. 1993)
1
- tm_mon¶
Bereich [1, 12]
2
- tm_mday¶
Bereich [1, 31]
3
- tm_hour¶
Bereich [0, 23]
4
- tm_min¶
Bereich [0, 59]
5
- tm_sec¶
Bereich [0, 61]; siehe Hinweis (2) in
strftime()6
- tm_wday¶
Bereich [0, 6]; Montag ist 0
7
- tm_yday¶
Bereich [1, 366]
8
- tm_isdst¶
0, 1 oder -1; siehe unten
N/A
- tm_zone¶
Abkürzung des Zeitzonennamens
N/A
- tm_gmtoff¶
Offset östlich von UTC in Sekunden
Beachten Sie, dass der Monatswert im Gegensatz zur C-Struktur im Bereich [1, 12] liegt, nicht [0, 11].
Bei Aufrufen von
mktime()kanntm_isdstauf 1 gesetzt werden, wenn Sommerzeit in Kraft ist, und auf 0, wenn sie nicht in Kraft ist. Ein Wert von -1 zeigt an, dass dies nicht bekannt ist, und führt normalerweise dazu, dass der korrekte Zustand ausgefüllt wird.Wenn ein Tupel mit falscher Länge an eine Funktion übergeben wird, die ein
struct_timeerwartet, oder wenn Elemente vom falschen Typ enthalten sind, wird einTypeErrorausgelöst.
- time.time() float¶
Gibt die Zeit in Sekunden seit dem Epoche als Gleitkommazahl zurück. Die Behandlung von Schaltsekunden ist plattformabhängig. Unter Windows und den meisten Unix-Systemen werden Schaltsekunden nicht zur Zeit in Sekunden seit der Epoche gezählt. Dies wird üblicherweise als Unix-Zeit bezeichnet.
Beachten Sie, dass, obwohl die Zeit immer als Gleitkommazahl zurückgegeben wird, nicht alle Systeme eine Zeit mit besserer Präzision als 1 Sekunde liefern. Während diese Funktion normalerweise nicht abnehmende Werte zurückgibt, kann sie einen niedrigeren Wert als ein vorheriger Aufruf zurückgeben, wenn die Systemuhr zwischen den beiden Aufrufen zurückgestellt wurde.
Die von
time()zurückgegebene Zahl kann in ein gängigeres Zeitformat (d. h. Jahr, Monat, Tag, Stunde usw.) in UTC konvertiert werden, indem sie an die Funktiongmtime()übergeben wird, oder in lokaler Zeit, indem sie an die Funktionlocaltime()übergeben wird. In beiden Fällen wird einstruct_time-Objekt zurückgegeben, von dem auf die Komponenten des Kalenderdatums als Attribute zugegriffen werden kann.Uhr
Unter Windows wird
GetSystemTimePreciseAsFileTime()aufgerufen.Ruft
clock_gettime(CLOCK_REALTIME)auf, falls verfügbar.Andernfalls wird
gettimeofday()aufgerufen.
Verwenden Sie
time_ns(), um den Präzisionsverlust durch denfloat-Typ zu vermeiden.
Geändert in Version 3.13: Unter Windows wird GetSystemTimePreciseAsFileTime() anstelle von GetSystemTimeAsFileTime() aufgerufen.
- time.time_ns() int¶
Ähnlich wie
time(), gibt aber die Zeit als ganze Anzahl von Nanosekunden seit der Epoche zurück.Hinzugefügt in Version 3.7.
- time.thread_time() float¶
Gibt den Wert (in Bruchteilen von Sekunden) der Summe der System- und Benutzer-CPU-Zeit des aktuellen Threads zurück. Dies schließt die Zeit während des Schlafens nicht ein. Sie ist per Definition threadspezifisch. Der Referenzpunkt des zurückgegebenen Werts ist undefiniert, so dass nur die Differenz zwischen den Ergebnissen zweier Aufrufe im selben Thread gültig ist.
Verwenden Sie
thread_time_ns(), um den Präzisionsverlust durch denfloat-Typ zu vermeiden.Verfügbarkeit: Linux, Unix, Windows.
Unix-Systeme, die
CLOCK_THREAD_CPUTIME_IDunterstützen.Hinzugefügt in Version 3.7.
- time.thread_time_ns() int¶
Ähnlich wie
thread_time(), gibt aber die Zeit in Nanosekunden zurück.Hinzugefügt in Version 3.7.
- time.tzset()¶
Setzt die Zeitumrechnungsregeln zurück, die von den Bibliotheksroutinen verwendet werden. Die Umgebungsvariable
TZgibt an, wie dies geschieht. Sie setzt auch die Variablentzname(aus derTZ-Umgebungsvariable),timezone(Sekunden ohne Sommerzeit westlich von UTC),altzone(Sekunden mit Sommerzeit westlich von UTC) unddaylight(auf 0, wenn diese Zeitzone keine Sommerzeitregeln hat, oder auf ungleich Null, wenn es eine Zeit gibt, in der die Sommerzeit gilt).Verfügbarkeit: Unix.
Hinweis
Obwohl in vielen Fällen das Ändern der Umgebungsvariable
TZdie Ausgabe von Funktionen wielocaltime()beeinflussen kann, ohnetzset()aufzurufen, sollte auf dieses Verhalten nicht verlassen werden.Die Umgebungsvariable
TZsollte keine Leerzeichen enthalten.Das Standardformat der Umgebungsvariablen
TZist (Leerzeichen zur besseren Lesbarkeit hinzugefügt)std offset [dst [offset [,start[/time], end[/time]]]]
Wo die Komponenten sind
stdunddstDrei oder mehr alphanumerische Zeichen für die Zeitzonenabkürzungen. Diese werden in time.tzname übernommen.
OffsetDer Offset hat das Format:
± hh[:mm[:ss]]. Dies gibt den Wert an, der zur lokalen Zeit addiert wird, um UTC zu erhalten. Wenn er mit einem "-" beginnt, liegt die Zeitzone östlich des Nullmeridians; andernfalls westlich davon. Wenn nach dst kein Offset folgt, wird angenommen, dass die Sommerzeit eine Stunde vor der Standardzeit liegt.start[/time], end[/time]Gibt an, wann auf Sommerzeit umgeschaltet und zurückgekehrt wird. Das Format der Start- und Enddaten ist eines der folgenden:
JnDer Julianische Tag n (1 <= n <= 365). Schalttage werden nicht gezählt, daher ist in allen Jahren der 28. Februar Tag 59 und der 1. März Tag 60.
nDer nullbasierte Julianische Tag (0 <= n <= 365). Schalttage werden gezählt, und es ist möglich, auf den 29. Februar zu verweisen.
Mm.n.dDer d-te Tag (0 <= d <= 6) der Woche n des Monats m des Jahres (1 <= n <= 5, 1 <= m <= 12, wobei Woche 5 "der letzte d-te Tag im Monat m" bedeutet, der in die vierte oder fünfte Woche fallen kann). Woche 1 ist die erste Woche, in der der d-te Tag vorkommt. Tag Null ist ein Sonntag.
timehat das gleiche Format wieoffset, mit der Ausnahme, dass kein führendes Vorzeichen ('-' oder '+') zulässig ist. Standardmäßig, wenn keine Zeit angegeben ist, ist dies 02:00:00.
>>> os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0' >>> time.tzset() >>> time.strftime('%X %x %Z') '02:07:36 05/08/03 EDT' >>> os.environ['TZ'] = 'AEST-10AEDT-11,M10.5.0,M3.5.0' >>> time.tzset() >>> time.strftime('%X %x %Z') '16:08:12 05/08/03 AEST'
Auf vielen Unix-Systemen (einschließlich *BSD, Linux, Solaris und Darwin) ist es bequemer, die Zoneinfo-Datenbank (tzfile(5)) des Systems zu verwenden, um die Zeitzonenregeln zu spezifizieren. Um dies zu tun, setzen Sie die Umgebungsvariable
TZauf den Pfad der gewünschten Zeitzonendatei, relativ zum Stammverzeichnis der 'zoneinfo'-Zeitzonendatenbank des Systems, die sich normalerweise unter/usr/share/zoneinfobefindet. Beispiele sind'US/Eastern','Australia/Melbourne','Egypt'oder'Europe/Amsterdam'.>>> os.environ['TZ'] = 'US/Eastern' >>> time.tzset() >>> time.tzname ('EST', 'EDT') >>> os.environ['TZ'] = 'Egypt' >>> time.tzset() >>> time.tzname ('EET', 'EEST')
Konstanten für Clock IDs¶
Diese Konstanten werden als Parameter für clock_getres() und clock_gettime() verwendet.
- time.CLOCK_BOOTTIME¶
Identisch mit
CLOCK_MONOTONIC, mit der Ausnahme, dass es auch jede Zeit einschließt, in der das System ausgesetzt war.Dies ermöglicht Anwendungen, eine suspendierungsbewusste monotone Uhr zu erhalten, ohne sich mit den Komplikationen von
CLOCK_REALTIMEbefassen zu müssen, die Diskontinuitäten aufweisen kann, wenn die Zeit mitsettimeofday()oder ähnlichem geändert wird.Verfügbarkeit: Linux >= 2.6.39.
Hinzugefügt in Version 3.7.
- time.CLOCK_HIGHRES¶
Das Solaris-Betriebssystem verfügt über einen
CLOCK_HIGHRES-Timer, der versucht, eine optimale Hardwarequelle zu nutzen und eine Auflösung nahe der Nanosekunde liefern kann.CLOCK_HIGHRESist die nicht einstellbare Uhr mit hoher Auflösung.Verfügbarkeit: Solaris.
Hinzugefügt in Version 3.3.
- time.CLOCK_MONOTONIC¶
Uhr, die nicht eingestellt werden kann und eine monotone Zeit seit einem nicht spezifizierten Startpunkt darstellt.
Verfügbarkeit: Unix.
Hinzugefügt in Version 3.3.
- time.CLOCK_MONOTONIC_RAW¶
Ähnlich wie
CLOCK_MONOTONIC, bietet aber Zugriff auf eine rohe, hardwarebasierte Zeit, die keiner NTP-Anpassung unterliegt.Verfügbarkeit: Linux >= 2.6.28, macOS >= 10.12.
Hinzugefügt in Version 3.3.
- time.CLOCK_MONOTONIC_RAW_APPROX¶
Ähnlich wie
CLOCK_MONOTONIC_RAW, liest aber einen vom System beim Kontextwechsel zwischengespeicherten Wert und hat daher eine geringere Genauigkeit.Verfügbarkeit: macOS >= 10.12.
Hinzugefügt in Version 3.13.
- time.CLOCK_PROCESS_CPUTIME_ID¶
Hochauflösender Prozess-Timer von der CPU.
Verfügbarkeit: Unix.
Hinzugefügt in Version 3.3.
- time.CLOCK_PROF¶
Hochauflösender Prozess-Timer von der CPU.
Verfügbarkeit: FreeBSD, NetBSD >= 7, OpenBSD.
Hinzugefügt in Version 3.7.
- time.CLOCK_TAI¶
-
Das System muss über eine aktuelle Leap-Second-Tabelle verfügen, damit dies die richtige Antwort liefert. PTP- oder NTP-Software kann eine Leap-Second-Tabelle verwalten.
Verfügbarkeit: Linux.
Hinzugefügt in Version 3.9.
- time.CLOCK_THREAD_CPUTIME_ID¶
Threadspezifische CPU-Zeit-Uhr.
Verfügbarkeit: Unix.
Hinzugefügt in Version 3.3.
- time.CLOCK_UPTIME¶
Zeit, deren absoluter Wert die Zeit ist, die das System läuft und nicht ausgesetzt ist, was eine genaue Messung der Betriebszeit, sowohl absolut als auch als Intervall, ermöglicht.
Verfügbarkeit: FreeBSD, OpenBSD >= 5.5.
Hinzugefügt in Version 3.7.
- time.CLOCK_UPTIME_RAW¶
Uhr, die monoton inkrementiert, die Zeit seit einem beliebigen Punkt verfolgt, unbeeinflusst von Frequenz- oder Zeitanpassungen und nicht inkrementiert, während das System schläft.
Verfügbarkeit: macOS >= 10.12.
Hinzugefügt in Version 3.8.
- time.CLOCK_UPTIME_RAW_APPROX¶
Ähnlich wie
CLOCK_UPTIME_RAW, aber der Wert wird vom System bei Kontextwechseln zwischengespeichert und ist daher weniger genau.Verfügbarkeit: macOS >= 10.12.
Hinzugefügt in Version 3.13.
Die folgende Konstante ist der einzige Parameter, der an clock_settime() übergeben werden kann.
- time.CLOCK_REALTIME¶
Echtzeituhr. Das Einstellen dieser Uhr erfordert entsprechende Berechtigungen. Die Uhr ist für alle Prozesse gleich.
Verfügbarkeit: Unix.
Hinzugefügt in Version 3.3.
Zeitzonenkonstanten¶
- time.altzone¶
Der Offset der lokalen Sommerzeit-Zeitzone, in Sekunden westlich von UTC, falls definiert. Dieser ist negativ, wenn die lokale Sommerzeit-Zeitzone östlich von UTC liegt (wie in Westeuropa, einschließlich des Vereinigten Königreichs). Verwenden Sie dies nur, wenn
daylightungleich Null ist. Siehe Hinweis unten.
- time.daylight¶
Ungleich Null, wenn eine Sommerzeit-Zeitzone definiert ist. Siehe Hinweis unten.
- time.timezone¶
Der Offset der lokalen (nicht-Sommerzeit) Zeitzone, in Sekunden westlich von UTC (negativ in den meisten Teilen Westeuropas, positiv in den USA, Null im Vereinigten Königreich). Siehe Hinweis unten.
- time.tzname¶
Ein Tupel aus zwei Zeichenketten: Die erste ist der Name der lokalen Nicht-Sommerzeit-Zeitzone, die zweite ist der Name der lokalen Sommerzeit-Zeitzone. Wenn keine Sommerzeit-Zeitzone definiert ist, sollte die zweite Zeichenkette nicht verwendet werden. Siehe Hinweis unten.
Hinweis
Für die oben genannten Zeitzonenkonstanten (altzone, daylight, timezone und tzname) wird der Wert durch die Zeitzonenregeln bestimmt, die zum Zeitpunkt des Modul-Ladens oder zum letzten Aufruf von tzset() in Kraft waren, und kann für Zeiten in der Vergangenheit falsch sein. Es wird empfohlen, die Ergebnisse tm_gmtoff und tm_zone aus localtime() zu verwenden, um Zeitzoneninformationen zu erhalten.
Siehe auch
- Modul
datetime Objektorientiertere Schnittstelle zu Daten und Zeiten.
- Modul
locale Internationalisierungsdienste. Die Locale-Einstellung beeinflusst die Interpretation vieler Format-Spezifizierer in
strftime()undstrptime().- Modul
calendar Allgemeine kalenderbezogene Funktionen.
timegm()ist die Umkehrung vongmtime()aus diesem Modul.
Fußnoten