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

Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen

Python datetime meistern

Entdecken Sie, wie Sie in Python mit praktischen Beispielen und klaren Erklärungen mit Datumsangaben und Zeiten arbeiten.

Video: Python datetime – Mit Datumsangaben und Zeiten arbeiten

Pythons datetime-Modul bietet mächtige Werkzeuge zur Manipulation von Datumsangaben und Zeiten. Im Folgenden gehen wir durch gängige Aufgaben, vom Abrufen des aktuellen Moments bis hin zu Formatierung und Zeitzonen-Handling.


Beispiel 1: Aktuelles Datum und Uhrzeit abrufen

import datetime
datetime_objekt = datetime.datetime.now()
print(datetime_objekt)

Die Ausgabe sieht aus wie:

2018-12-19 09:26:03.478039

Hier importieren wir das Modul mit import datetime. Die datetime-Klasse enthält eine now()-Methode, die das lokale Datum und die Uhrzeit zurückgibt.


Beispiel 2: Aktuelles Datum abrufen

import datetime
datum_objekt = datetime.date.today()
print(datum_objekt)

Die Ausgabe wird sein:

2018-12-19

Wir verwenden today() aus der date-Klasse, um das aktuelle Kalenderdatum zu erhalten.


Das datetime-Modul erkunden

Führen Sie dir(datetime) aus, um alle Attribute und Klassen aufzulisten:

import datetime
print(dir(datetime))

Ausgabe:

['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']

Wichtige Klassen sind date, time, datetime und timedelta.


datetime.date Klasse

Die date-Klasse repräsentiert ein Kalenderdatum (Jahr, Monat, Tag).


Beispiel 3: Date-Objekt erstellen

import datetime
d = datetime.date(2019, 4, 13)
print(d)

Ergebnis:

2019-04-13

Hier ist date() ein Konstruktor, der year, month und day als Argumente akzeptiert.

Die Variable a ist eine date-Instanz.


Nur die date-Klasse importieren:

from datetime import date
a = date(2019, 4, 13)
print(a)

Beispiel 4: Aktuelles Datum

Verwenden Sie die today()-Klassenmethode:

from datetime import date
heute = date.today()
print("Aktuelles Datum =", heute)

Beispiel 5: Aus Timestamp

Ein Unix-Timestamp zählt Sekunden seit dem 1970-01-01 UTC. Konvertieren Sie ihn mit fromtimestamp():

from datetime import date
timestamp = date.fromtimestamp(1326244364)
print("Datum =", timestamp)

Ausgabe:

Datum = 2012-01-11

Beispiel 6: Auf Jahr, Monat, Tag zugreifen

from datetime import date
heute = date.today()
print("Aktuelles Jahr:", heute.year)
print("Aktueller Monat:", heute.month)
print("Aktueller Tag:", heute.day)

datetime.time

Die time-Klasse speichert eine Uhrzeit ohne Datum.


Beispiel 7: Time-Objekte erstellen

from datetime import time
a = time()
print("a =", a)
b = time(11, 34, 56)
print("b =", b)
c = time(hour=11, minute=34, second=56)
print("c =", c)
d = time(11, 34, 56, 234566)
print("d =", d)

Ergebnis:

a = 00:00:00 b = 11:34:56 c = 11:34:56 d = 11:34:56.234566

Beispiel 8: Zeitkomponenten inspizieren

from datetime import time
a = time(11, 34, 56)
print("Stunde =", a.hour)
print("Minute =", a.minute)
print("Sekunde =", a.second)
print("Mikrosekunde =", a.microsecond)

Ausgabe:

Stunde = 11 Minute = 34 Sekunde = 56 Mikrosekunde = 0

datetime.datetime

Die datetime-Klasse kombiniert sowohl Datums- als auch Zeitinformationen.


Beispiel 9: Datetime-Objekt erstellen

from datetime import datetime
# Jahr, Monat, Tag
A = datetime(2018, 11, 28)
print(A)
# Vollständige Spezifikation
B = datetime(2017, 11, 28, 23, 55, 59, 342380)
print(B)

Ergebnis:

2018-11-28 00:00:00 2017-11-28 23:55:59.342380

Jahr, Monat und Tag sind obligatorisch; Stunde, Minute, Sekunde und Mikrosekunde defaulten auf null.


Beispiel 10: Komponenten & Timestamp inspizieren

from datetime import datetime
A = datetime(2017, 11, 28, 23, 55, 59, 342380)
print("Jahr =", A.year)
print("Monat =", A.month)
print("Tag =", A.day)
print("Stunde =", A.hour)
print("Minute =", A.minute)
print("Timestamp =", A.timestamp())

Ausgabe:

Jahr = 2017 Monat = 11 Tag = 28 Stunde = 23 Minute = 55 Timestamp = 1511913359.34238

datetime.timedelta

Ein timedelta-Objekt repräsentiert eine Dauer zwischen zwei Datumsangaben oder Zeiten.


Beispiel 11: Differenz zwischen Datumsangaben & Zeiten

from datetime import datetime, date
T1 = date(year=2018, month=7, day=12)
T2 = date(year=2017, month=12, day=23)
T3 = T1 - T2
print("T3 =", T3)
T4 = datetime(year=2018, month=7, day=12, hour=7, minute=9, second=33)
T5 = datetime(year=2019, month=6, day=10, hour=5, minute=55, second=13)
T6 = T4 - T5
print("T6 =", T6)
print("Typ von T3 =", type(T3))
print("Typ von T6 =", type(T6))

Ausgabe:

T3 = 201 days, 0:00:00 T6 = -333 days, 1:14:20 Typ von T3 = <class 'datetime.timedelta'> Typ von T6 = <class 'datetime.timedelta'>

Beispiel 12: Timedelta-Objekte subtrahieren

from datetime import timedelta
T1 = timedelta(weeks=2, days=5, hours=1, seconds=33)
T2 = timedelta(days=4, hours=11, minutes=4, seconds=54)
T3 = T1 - T2
print("T3 =", T3)

Ausgabe:

T3 = 14 days, 13:55:39

Beispiel 13: Negatives Timedelta

from datetime import timedelta
T1 = timedelta(seconds=33)
T2 = timedelta(seconds=54)
T3 = T1 - T2
print("T3 =", T3)
print("abs(T3) =", abs(T3))

Ausgabe:

T3 = -1 day, 23:59:39 abs(T3) = 0:00:21

Beispiel 14: Gesamte Sekunden in einem Timedelta

from datetime import timedelta
T = timedelta(days=5, hours=1, seconds=33, microseconds=233423)
print("gesamte sekunden =", T.total_seconds())

Ausgabe:

gesamte sekunden = 435633.233423

Sie können Datumsangaben addieren, ein timedelta mit einer Zahl multiplizieren und durch einen Float dividieren, um Dauern zu skalieren.


Datumsformatierung und Parsing

Verschiedene Locales verwenden unterschiedliche Datumsformate (z. B. mm/dd/yyyy in den USA vs dd/mm/yyyy in UK). Pythons strftime() und strptime() Methoden helfen bei der Konvertierung zwischen datetime-Objekten und formatierten Strings.


Python strftime() – datetime zu String

from datetime import datetime
now = datetime.now()
# Stunde:Minute:Sekunde
T = now.strftime("%H:%M:%S")
print("Uhrzeit:", T)
# US-Format
S1 = now.strftime("%m/%d/%Y, %H:%M:%S")
print("S1:", S1)
# UK-Format
S2 = now.strftime("%d/%m/%Y, %H:%M:%S")
print("S2:", S2)

Typische Ausgabe:

Uhrzeit: 04:34:52 S1: 12/26/2018, 04:34:52 S2: 26/12/2018, 04:34:52

Gängige Formatcodes: %Y Jahr, %m Monat, %d Tag, %H Stunde, %M Minute, %S Sekunde.


Python strptime() – String zu datetime

from datetime import datetime
datum_string = "21 June, 2018"
print("datum_string =", datum_string)
datum_objekt = datetime.strptime(datum_string, "%d %B, %Y")
print("datum_objekt =", datum_objekt)

Ausgabe:

datum_string = 21 June, 2018 datum_objekt = 2018-06-21 00:00:00

Hier ist %d Tag, %B voller Monatsname und %Y Jahr.


Zeitzonen-Bewusstsein

Für Anwendungen, die Zeiten in verschiedenen Zonen anzeigen oder berechnen müssen, vermeiden Sie manuelle Berechnungen und nutzen Sie die pytz-Bibliothek.

from datetime import datetime
import pytz
lokal = datetime.now()
print("Lokal:", lokal.strftime("%m/%d/%Y, %H:%M:%S"))
tz_NY = pytz.timezone('America/New_York')
dt_NY = datetime.now(tz_NY)
print("NY:", dt_NY.strftime("%m/%d/%Y, %H:%M:%S"))
tz_London = pytz.timezone('Europe/London')
dt_London = datetime.now(tz_London)
print("London:", dt_London.strftime("%m/%d/%Y, %H:%M:%S"))

Beispielausgabe:

Lokal: 12/20/2018, 13:10:44 NY: 12/20/2018, 08:10:44 London: 12/20/2018, 13:10:44

Die datetime_NY und datetime_London Objekte enthalten zeitzonen-bewusste Timestamps.


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 Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
  7. Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
  8. Aktuelles Datum und Uhrzeit in Python abrufen: Praktischer Leitfaden
  9. Python: Aktuelle Uhrzeit und Zeitzonendaten einfach abrufen
  10. Pythons time.sleep() meistern: Best Practices, Multithreading und Praxisbeispiele