Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Datum & Zeit in Python meistern: Praktischer Leitfaden

Was ist ein Tick?

Zeitintervalle sind Gleitkommazahlen in Sekunden. Bestimmte Zeitpunkte werden in Sekunden seit 00:00:00 Uhr am 1. Januar 1970 (Epoch) ausgedrückt.

Es gibt ein beliebtes time-Modul in Python, das Funktionen für die Arbeit mit Zeiten und für die Konvertierung zwischen Darstellungen bereitstellt. Die Funktion time.time() gibt die aktuelle Systemzeit in Ticks seit 00:00:00 Uhr am 1. Januar 1970 (Epoch) zurück.

Beispiel

#!/usr/bin/python
import time
ticks = time.time()
print "Number of ticks since 12:00am, January 1, 1970:", ticks

Dies würde ein Ergebnis wie folgt erzeugen:

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

Datumsarithmetik ist mit Ticks einfach. Allerdings können Daten vor der Epoche nicht in dieser Form dargestellt werden. Sehr weit in der Zukunft liegende Daten können ebenfalls nicht so dargestellt werden – der Grenzwert liegt irgendwann 2038 für UNIX und Windows.

Was ist ein TimeTuple?

Viele von Pythons Zeitfunktionen behandeln die Zeit als Tupel aus 9 Zahlen, wie unten gezeigt:

IndexFeldWerte
04-stelliges Jahr2008
1Monat1 bis 12
2Tag1 bis 31
3Stunde0 bis 23
4Minute0 bis 59
5Sekunde0 bis 61 (60 oder 61 sind Schaltsekunden)
6Wochentag0 bis 6 (0 ist Montag)
7Tag des Jahres1 bis 366 (Julianischer Tag)
8Sommerzeit-1, 0, 1; -1 bedeutet Bibliothek bestimmt DST

Das obige Tupel entspricht der struct_time-Struktur. Diese Struktur hat folgende Attribute:

IndexAttributeWerte
0tm_year2008
1tm_mon1 bis 12
2tm_mday1 bis 31
3tm_hour0 bis 23
4tm_min0 bis 59
5tm_sec0 bis 61 (60 oder 61 sind Schaltsekunden)
6tm_wday0 bis 6 (0 ist Montag)
7tm_yday1 bis 366 (Julianischer Tag)
8tm_isdst-1, 0, 1; -1 bedeutet Bibliothek bestimmt DST

Aktuelle Zeit ermitteln

Um einen Zeitpunkt von einem Sekunden seit der Epoche Gleitkommawert in ein Time-Tuple zu übersetzen, übergeben Sie den Gleitkommawert an eine Funktion (z. B. localtime), die ein Time-Tuple mit allen neun gültigen Elementen zurückgibt.

#!/usr/bin/python
import time
localtime = time.localtime(time.time())
print "Local current time :", localtime

Dies würde folgendes Ergebnis erzeugen, das in jede andere darstellbare Form formatiert werden kann:

Local current time : time.struct_time(tm_year=2013, tm_mon=7, tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)

Formatierte Zeit erhalten

Sie können jede Zeit nach Ihren Wünschen formatieren, aber die einfache Methode, um Zeit in lesbarem Format zu erhalten, ist asctime():

#!/usr/bin/python
import time
localtime = time.asctime(time.localtime(time.time()))
print "Local current time :", localtime

Dies würde folgendes Ergebnis erzeugen:

Local current time : Tue Jan 13 10:17:09 2009

Kalender für einen Monat erhalten

Das calendar-Modul bietet eine breite Palette von Methoden für Jahres- und Monatskalender. Hier drucken wir einen Kalender für einen gegebenen Monat (Jan 2008):

#!/usr/bin/python
import calendar
cal = calendar.month(2008, 1)
print "Here is the calendar:"
print cal

Dies würde folgendes Ergebnis erzeugen:

Here is the calendar:
January 2008
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 30 31

Das time-Modul

Es gibt ein beliebtes time-Modul in Python, das Funktionen für die Arbeit mit Zeiten und für die Konvertierung zwischen Darstellungen bereitstellt. Hier ist die Liste aller verfügbaren Methoden:

Nr.Funktion & Beschreibung
1time.altzone – Offset der lokalen DST-Zeitzone in Sekunden westlich von UTC, falls definiert. Negativ, wenn lokale DST-Zeitzone östlich von UTC (wie in Westeuropa, inkl. UK). Nur verwenden, wenn daylight ungleich null.
2time.asctime([tupletime]) – Akzeptiert Time-Tuple und gibt lesbaren 24-Zeichen-String zurück, z. B. 'Tue Dec 11 18:07:14 2008'.
3time.clock() – Gibt aktuelle CPU-Zeit als Gleitkommazahl in Sekunden zurück. Für Messung von Rechenkosten nützlicher als time.time().
4time.ctime([secs]) – Wie asctime(localtime(secs)) und ohne Argumente wie asctime().
5time.gmtime([secs]) – Akzeptiert Zeitpunkt in Sekunden seit Epoche und gibt Time-Tuple t mit UTC-Zeit zurück. Hinweis: t.tm_isdst ist immer 0.
6time.localtime([secs]) – Akzeptiert Zeitpunkt in Sekunden seit Epoche und gibt Time-Tuple t mit Ortszeit zurück (t.tm_isdst ist 0 oder 1, je nachdem ob DST gilt).
7time.mktime(tupletime) – Akzeptiert Zeitpunkt als Time-Tuple in Ortszeit und gibt Gleitkommawert mit Sekunden seit Epoche zurück.
8time.sleep(secs) – Setzt aufrufenden Thread für secs Sekunden aus.
9time.strftime(fmt[,tupletime]) – Akzeptiert Zeitpunkt als Time-Tuple in Ortszeit und gibt String zurück, der Zeitpunkt wie per fmt angegeben darstellt.
10time.strptime(str, fmt='%a %b %d %H:%M:%S %Y') – Parst str gemäß Formatstring fmt und gibt Zeitpunkt im Time-Tuple-Format zurück.
11time.time() – Gibt aktuellen Zeitpunkt als Gleitkommazahl Sekunden seit Epoche zurück.
12time.tzset() – Setzt Zeitkonvertierungsregeln zurück, die von Bibliotheksroutinen verwendet werden. Umgebungsvariable TZ spezifiziert, wie dies gemacht wird.

Wichtige Attribute des time-Moduls:

Nr.Attribut & Beschreibung
1

time.timezone

Offset in Sekunden der lokalen Zeitzone (ohne DST) von UTC (>0 in Amerika; <=0 in meisten Teilen Europas, Asiens, Afrikas).

2

time.tzname

Paar locale-abhängiger Strings: Namen der lokalen Zeitzone ohne und mit DST.

Das calendar-Modul

Das calendar-Modul stellt kalenderbezogene Funktionen bereit, einschließlich Funktionen zum Drucken eines Textkalenders für einen gegebenen Monat oder Jahr.

Standardmäßig nimmt calendar Montag als ersten Tag der Woche und Sonntag als letzten. Um dies zu ändern, rufen Sie calendar.setfirstweekday() auf.

Liste der Funktionen des calendar-Moduls:

Nr.Funktion & Beschreibung
1

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

Gibt mehrzeiligen String mit Kalender für Jahr year formatiert in drei Spalten, getrennt durch c Spaces. w = Breite in Zeichen pro Datum; jede Zeile hat Länge 21*w+18+2*c. l = Zeilen pro Woche.

2

calendar.firstweekday()

Gibt aktuelle Einstellung für Wochentag zurück, der jede Woche beginnt. Standard beim Import: 0 (Montag).

3

calendar.isleap(year)

Gibt True zurück, wenn Jahr Schaltjahr ist, sonst False.

4

calendar.leapdays(y1, y2)

Gibt Gesamtzahl der Schalttage in Jahren innerhalb von range(y1, y2) zurück.

5

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

Gibt mehrzeiligen String mit Kalender für Monat month von Jahr year zurück, eine Zeile pro Woche plus zwei Headerzeilen.

6

calendar.monthcalendar(year, month)

Gibt Liste von Listen von ints zurück. Jede Teilliste = eine Woche. Tage außerhalb Monat = 0; Tage innerhalb = Tag-des-Monats (1+).

7

calendar.monthrange(year, month)

Gibt zwei Integer zurück: 1. Wochentagscode für ersten Tag des Monats; 2. Anzahl Tage im Monat. Wochentag: 0 (Mo) bis 6 (So); Monat: 1-12.

8

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

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

9

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

Wie print calendar.month(year, month, w, l).

10

calendar.setfirstweekday(weekday)

Setzt ersten Tag jeder Woche auf weekday-Code. Codes: 0 (Mo) bis 6 (So).

11

calendar.timegm(tupletime)

Inverse von time.gmtime: akzeptiert Zeitpunkt im Time-Tuple-Format und gibt denselben Zeitpunkt als Gleitkommazahl Sekunden seit Epoche zurück.

12

calendar.weekday(year, month, day)

Gibt Wochentagscode für gegebenes Datum zurück. Codes: 0 (Mo) bis 6 (So); Monate: 1 (Jan) bis 12 (Dez).

Weitere Module & Funktionen

Falls Sie interessiert sind, finden Sie hier eine Liste weiterer wichtiger Module und Funktionen für Datum & Zeit in Python:

Python

  1. Python-Datentypen meistern: Praxisleitfaden
  2. Python-Operatoren meistern: Umfassender Leitfaden
  3. Python pass-Statement meistern: Praxisleitfaden
  4. Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
  5. Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
  6. Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
  7. Aktuelles Datum und Uhrzeit in Python abrufen: Praktischer Leitfaden
  8. Python: Aktuelle Uhrzeit und Zeitzonendaten einfach abrufen
  9. Pythons time-Modul meistern: Funktionen, Structs und praktische Beispiele
  10. Pythons time.sleep() meistern: Best Practices, Multithreading und Praxisbeispiele