Python 3 - Datum & Uhrzeit

Ein Python-Programm kann Datum und Uhrzeit auf verschiedene Arten verarbeiten. Das Konvertieren zwischen Datumsformaten ist eine häufige Aufgabe für Computer. Die Zeit- und Kalendermodule von Python helfen bei der Verfolgung von Datum und Uhrzeit.

Was ist Zecke?

Zeitintervalle sind Gleitkommazahlen in Sekundeneinheiten. Bestimmte Zeitpunkte werden seit dem 1. Januar 1970 (Epoche) um 12:00 Uhr in Sekunden ausgedrückt.

Es gibt eine beliebte timeIn Python verfügbares Modul, das Funktionen zum Arbeiten mit Zeiten und zum Konvertieren zwischen Darstellungen bietet. Die Funktiontime.time() Gibt die aktuelle Systemzeit in Ticks seit dem 1. Januar 1970 (Epoche) um 12:00 Uhr zurück.

Beispiel

#!/usr/bin/python3
import time;      # This is required to include time module.

ticks = time.time()
print ("Number of ticks since 12:00am, January 1, 1970:", ticks)

Dies würde zu einem Ergebnis führen, das wie folgt lautet:

Number of ticks since 12:00am, January 1, 1970: 1455508609.34375

Datumsarithmetik ist einfach mit Zecken zu tun. Daten vor der Epoche können in dieser Form jedoch nicht dargestellt werden. Daten in ferner Zukunft können auch nicht so dargestellt werden - der Grenzwert liegt irgendwann im Jahr 2038 für UNIX und Windows.

Was ist TimeTuple?

Viele der Zeitfunktionen des Pythons behandeln die Zeit als Tupel mit 9 Zahlen, wie unten gezeigt -

Index Feld Werte
0 4-stelliges Jahr 2016
1 Monat 1 bis 12
2 Tag 1 bis 31
3 Stunde 0 bis 23
4 Minute 0 bis 59
5 Zweite 0 bis 61 (60 oder 61 sind Schaltsekunden)
6 Wochentag 0 bis 6 (0 ist Montag)
7 Tag des Jahres 1 bis 366 (julianischer Tag)
8 Sommerzeit -1, 0, 1, -1 bedeutet, dass die Bibliothek die Sommerzeit bestimmt

Zum Beispiel -

import time

print (time.localtime());

Dies würde zu einem Ergebnis wie folgt führen:

time.struct_time(tm_year = 2016, tm_mon = 2, tm_mday = 15, tm_hour = 9, 
   tm_min = 29, tm_sec = 2, tm_wday = 0, tm_yday = 46, tm_isdst = 0)

Das obige Tupel entspricht struct_timeStruktur. Diese Struktur hat folgende Attribute:

Index Attribute Werte
0 tm_year 2016
1 tm_mon 1 bis 12
2 tm_mday 1 bis 31
3 tm_hour 0 bis 23
4 tm_min 0 bis 59
5 tm_sec 0 bis 61 (60 oder 61 sind Schaltsekunden)
6 tm_wday 0 bis 6 (0 ist Montag)
7 tm_yday 1 bis 366 (julianischer Tag)
8 tm_isdst -1, 0, 1, -1 bedeutet, dass die Bibliothek die Sommerzeit bestimmt

Aktuelle Zeit abrufen

Übergeben Sie den Gleitkommawert an eine Funktion (z. B. Ortszeit), die ein Zeittupel mit allen gültigen neun Elementen zurückgibt, um einen Zeitpunkt von Sekunden seit dem Gleitkommawert der Epoche in ein Zeittupel zu übersetzen.

#!/usr/bin/python3
import time

localtime = time.localtime(time.time())
print ("Local current time :", localtime)

Dies würde das folgende Ergebnis erzeugen, das in jeder anderen vorzeigbaren Form formatiert werden könnte -

Local current time : time.struct_time(tm_year = 2016, tm_mon = 2, tm_mday = 15, 
   tm_hour = 9, tm_min = 29, tm_sec = 2, tm_wday = 0, tm_yday = 46, tm_isdst = 0)

Formatierte Zeit abrufen

Sie können jederzeit gemäß Ihren Anforderungen formatieren. Eine einfache Methode, um Zeit in einem lesbaren Format abzurufen, ist jedoch asctime() - -

#!/usr/bin/python3
import time

localtime = time.asctime( time.localtime(time.time()) )
print ("Local current time :", localtime)

Dies würde das folgende Ergebnis erzeugen -

Local current time : Mon Feb 15 09:34:03 2016

Kalender für einen Monat abrufen

Das Kalendermodul bietet eine breite Palette von Methoden zum Spielen mit Jahres- und Monatskalendern. Hier drucken wir einen Kalender für einen bestimmten Monat (Januar 2008) -

#!/usr/bin/python3
import calendar

cal = calendar.month(2016, 2)
print ("Here is the calendar:")
print (cal)

Dies würde das folgende Ergebnis erzeugen -

Here is the calendar:
   February 2016
Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29

Das Zeitmodul

Es gibt eine beliebte timeIn Python verfügbares Modul, das Funktionen zum Arbeiten mit Zeiten und zum Konvertieren zwischen Darstellungen bietet. Hier ist die Liste aller verfügbaren Methoden.

Sr.Nr. Bedienungsanleitung
1 time.altzone

Der Versatz der lokalen Sommerzeitzone in Sekunden westlich von UTC, falls definiert. Dies ist negativ, wenn die lokale Sommerzeitzone östlich von UTC liegt (wie in Westeuropa, einschließlich Großbritannien). Verwenden Sie diese Option, wenn das Tageslicht ungleich Null ist.

2 time.asctime ([tupletime])

Akzeptiert ein Zeittupel und gibt eine lesbare Zeichenfolge mit 24 Zeichen zurück, z. B. "Di, 11. Dezember, 18:07:14 2008".

3 Zeit Uhr( )

Gibt die aktuelle CPU-Zeit als Gleitkommazahl von Sekunden zurück. Um die Berechnungskosten verschiedener Ansätze zu messen, ist der Wert von time.clock nützlicher als der von time.time ().

4 time.ctime ([secs])

Wie asctime (localtime (secs)) und ohne Argumente ist wie asctime ()

5 time.gmtime ([secs])

Akzeptiert einen in Sekunden seit der Epoche ausgedrückten Moment und gibt ein Zeittupel t mit der UTC-Zeit zurück. Hinweis - t.tm_isdst ist immer 0

6 time.localtime ([secs])

Akzeptiert einen in Sekunden seit der Epoche ausgedrückten Zeitpunkt und gibt ein Zeittupel t mit der Ortszeit zurück (t.tm_isdst ist 0 oder 1, abhängig davon, ob die Sommerzeit nach lokalen Regeln für Sofortsekunden gilt).

7 time.mktime (tupletime)

Akzeptiert einen Moment, der als Zeittupel in der Ortszeit ausgedrückt wird, und gibt einen Gleitkommawert zurück, wobei der Moment in Sekunden seit der Epoche ausgedrückt wird.

8 time.sleep (secs)

Hält den aufrufenden Thread für Sekunden an.

9 time.strftime (fmt [, tupletime])

Akzeptiert einen als Zeittupel in der Ortszeit ausgedrückten Zeitpunkt und gibt eine Zeichenfolge zurück, die den durch die Zeichenfolge fmt angegebenen Zeitpunkt darstellt.

10 time.strptime (str, fmt = '% a% b% d% H:% M:% S% Y')

Analysiert str gemäß der Formatzeichenfolge fmt und gibt den Moment im Zeittupelformat zurück.

11 Zeit Zeit( )

Gibt den aktuellen Zeitpunkt zurück, eine Gleitkommazahl von Sekunden seit der Epoche.

12 time.tzset ()

Setzt die von den Bibliotheksroutinen verwendeten Zeitkonvertierungsregeln zurück. Die Umgebungsvariable TZ gibt an, wie dies gemacht wird.

Mit dem Zeitmodul stehen zwei wichtige Attribute zur Verfügung. Sie sind -

Sr.Nr. Attribut & Beschreibung
1

time.timezone

Das Attribut time.timezone ist der Versatz in Sekunden der lokalen Zeitzone (ohne Sommerzeit) von UTC (> 0 in Amerika; <= 0 in den meisten Teilen Europas, Asiens, Afrikas).

2

time.tzname

Das Attribut time.tzname ist ein Paar von vom Gebietsschema abhängigen Zeichenfolgen, bei denen es sich um die Namen der lokalen Zeitzone ohne bzw. mit Sommerzeit handelt.

Das Kalendermodul

Das Kalendermodul bietet kalenderbezogene Funktionen, einschließlich Funktionen zum Drucken eines Textkalenders für einen bestimmten Monat oder ein bestimmtes Jahr.

Standardmäßig verwendet der Kalender Montag als ersten Tag der Woche und Sonntag als letzten. Um dies zu ändern, rufen Sie diecalendar.setfirstweekday() Funktion.

Hier ist eine Liste der Funktionen, die mit dem verfügbar sind calendar Modul -

Sr.Nr. Bedienungsanleitung
1

calendar.calendar(year,w = 2,l = 1,c = 6)

Gibt eine mehrzeilige Zeichenfolge mit einem Kalender für das Jahr zurück, der in drei durch c Leerzeichen getrennte Spalten formatiert ist. w ist die Breite in Zeichen jedes Datums; Jede Zeile hat eine Länge von 21 * w + 18 + 2 * c. l ist die Anzahl der Zeilen pro Woche.

2

calendar.firstweekday( )

Gibt die aktuelle Einstellung für den Wochentag zurück, der jede Woche beginnt. Wenn der Kalender zum ersten Mal importiert wird, ist dies standardmäßig 0, was Montag bedeutet.

3

calendar.isleap(year)

Gibt True zurück, wenn das Jahr ein Schaltjahr ist. sonst falsch.

4

calendar.leapdays(y1,y2)

Gibt die Gesamtzahl der Schalttage in den Jahren innerhalb des Bereichs (y1, y2) zurück.

5

calendar.month(year,month,w = 2,l = 1)

Gibt eine mehrzeilige Zeichenfolge mit einem Kalender für den Monat, den Monat des Jahres und das Jahr zurück, eine Zeile pro Woche plus zwei Kopfzeilen. w ist die Breite in Zeichen jedes Datums; Jede Zeile hat eine Länge von 7 * w + 6. l ist die Anzahl der Zeilen pro Woche.

6

calendar.monthcalendar(year,month)

Gibt eine Liste mit Ints-Listen zurück. Jede Unterliste bezeichnet eine Woche. Tage außerhalb des Monats Monat des Jahres Jahr werden auf 0 gesetzt; Tage innerhalb eines Monats werden auf den Tag des Monats 1 und höher eingestellt.

7

calendar.monthrange(year,month)

Gibt zwei Ganzzahlen zurück. Der erste ist der Code des Wochentags für den ersten Tag des Monats Monat im Jahr Jahr; Der zweite ist die Anzahl der Tage im Monat. Wochentagscodes sind 0 (Montag) bis 6 (Sonntag); Monatszahlen sind 1 bis 12.

8

calendar.prcal(year,w = 2,l = 1,c = 6)

Wie print calendar.calendar (Jahr, w, l, c).

9

calendar.prmonth(year,month,w = 2,l = 1)

Wie print calendar.month (Jahr, Monat, w, l).

10

calendar.setfirstweekday(weekday)

Legt den ersten Tag jeder Woche auf den Wochentagcode Wochentag fest. Wochentagscodes sind 0 (Montag) bis 6 (Sonntag).

11

calendar.timegm(tupletime)

Die Umkehrung von time.gmtime: Akzeptiert einen Zeitzeitpunkt in Zeittupelform und gibt denselben Zeitpunkt wie eine Gleitkommazahl von Sekunden seit der Epoche zurück.

12

calendar.weekday(year,month,day)

Gibt den Wochentagscode für das angegebene Datum zurück. Wochentagscodes sind 0 (Montag) bis 6 (Sonntag); Die Monatszahlen sind 1 (Januar) bis 12 (Dezember).

Andere Module und Funktionen

Wenn Sie interessiert sind, finden Sie hier eine Liste anderer wichtiger Module und Funktionen, mit denen Sie in Python mit Datum und Uhrzeit spielen können -

  • Das datetime-Modul
  • Das Pytz-Modul
  • Das Dateutil-Modul