In Python sind Datum und Uhrzeit kein eigener Datentyp, aber ein Modul mit dem Namen datetimekann importiert werden, um sowohl mit dem Datum als auch mit der Uhrzeit zu arbeiten. Das Datetime-Modul ist in Python integriert, sodass es nicht extern installiert werden muss.

Das Datetime-Modul bietet Klassen für die Arbeit mit Datum und Uhrzeit. Diese Klassen bieten eine Reihe von Funktionen für Datums-, Uhrzeit- und Zeitintervalle. Datum und Datum / Uhrzeit sind in Python ein Objekt. Wenn Sie sie also bearbeiten, bearbeiten Sie tatsächlich Objekte und keine Zeichenfolgen oder Zeitstempel.

Die datetime-Klassen sind in 6 Hauptklassen unterteilt -

  • Datum - Ein idealisiertes naives Datum, vorausgesetzt, der aktuelle Gregorianische Kalender war und wird immer gültig sein. Seine Attribute sind Jahr, Monat und Tag.
  • Zeit - Eine idealisierte Zeit, unabhängig von einem bestimmten Tag, vorausgesetzt, jeder Tag hat genau 24 * 60 * 60 Sekunden. Seine Attribute sind Stunde, Minute, Sekunde, Mikrosekunde und Tzinfo.
  • Datum / Uhrzeit - Dies ist eine Kombination aus Datum und Uhrzeit zusammen mit den Attributen Jahr, Monat, Tag, Stunde, Minute, Sekunde, Mikrosekunde und Tzinfo.
  • Zeitdelta - Eine Dauer, die den Unterschied zwischen zwei Datums-, Zeit- oder Datums- / Uhrzeitinstanzen in Mikrosekundenauflösung ausdrückt.
  • tzinfo - Es liefert Zeitzoneninformationsobjekte.
  • Zeitzone - Eine Klasse, die die abstrakte Basisklasse tzinfo als festen Offset von der UTC implementiert (neu in Version 3.2).

Datumsklasse

Wenn ein Objekt dieser Klasse instanziiert wird, repräsentiert es ein Datum im Format YYYY-MM-DD. Der Konstruktor dieser Klasse benötigt drei obligatorische Argumente: Jahr, Monat und Datum.

Konstruktorsyntax:



Klasse datetime.date (Jahr, Monat, Tag)

Die Argumente müssen im folgenden Bereich liegen:

  • MINYEAR <= Jahr <= MAXYEAR
  • 1 <= Monat <= 12
  • 1 <= Tag <= Anzahl der Tage im angegebenen Monat und Jahr

Hinweis - Wenn das Argument keine Ganzzahl ist, wird a ausgelöst, TypeErrorund wenn es außerhalb des Bereichs a liegt, ValueErrorwird a ausgelöst.

  
from datetime import date 
  
my_date = date(1996, 12, 11) 
  
print("Date passed as argument is", my_date) 
  
  

Ausgabe:

Als Argument übergebenes Datum ist 1996-12-11
Traceback (letzter Anruf zuletzt):
  Datei "/home/ccabfb570d9bd1dcd11dc4fe55fd6ba2.py", Zeile 14, in <Modul>
    my_date = date (1996, 12, 39)
ValueError: Tag liegt für Monat außerhalb des Bereichs
Traceback (letzter Anruf zuletzt):
  Datei "/home/53b974e10651f1853eee3c004b48c481.py", Zeile 18, in <Modul>
    my_date = date ('1996', 12, 11)
TypeError: Eine Ganzzahl ist erforderlich (got type str)
</ module> </ module>

Aktuelles Datum

Zur Rückgabe wird die aktuelle lokale Datumsfunktion today() der Datumsklasse verwendet. Die Funktion today() verfügt über mehrere Attribute (Jahr, Monat und Tag). Diese können einzeln gedruckt werden.

  
from datetime import date 
  
today = date.today() 
  
print("Today's date is", today) 
  
print("Date components", today.year, today.month, today.day) 

Ausgabe:

Das heutige Datum ist der 25.10.2019
Datumsbestandteile 2019 10 25

Verschiedene Funktionen in der Datumsklasse sind -

Funktionsname Beschreibung
fromtimestamp (Zeitstempel) Geben Sie das lokale Datum zurück, das dem POSIX-Zeitstempel entspricht
fromordinal (ordinal) Geben Sie das Datum zurück, das der proleptischen gregorianischen Ordnungszahl entspricht, wobei der 1. Januar des Jahres 1 die Ordnungszahl 1 hat.
fromisoformat (date_string) Geben Sie ein Datum zurück, das einer Datumszeichenfolge im Format JJJJ-MM-TT entspricht:
fromisocalendar (Jahr, Woche, Tag) Geben Sie ein Datum zurück, das dem nach Jahr, Woche und Tag angegebenen ISO-Kalenderdatum entspricht.

Zeitklasse

Das Zeitobjekt repräsentiert die Ortszeit, unabhängig von einem Tag.
Konstruktorsyntax:

Klasse datetime.time (Stunde = 0, Minute = 0, Sekunde = 0, Mikrosekunde = 0, tzinfo = Keine, *, Falte = 0)

Alle Argumente sind optional. tzinfo kann sein, Nonesonst müssen alle Attribute im folgenden Bereich ganzzahlig sein -



  • 0 <= Stunde <24
  • 0 <= Minute <60
  • 0 <= Sekunde <60
  • 0 <= Mikrosekunde <1000000
  • falten in [0, 1]
  
from datetime import time 
  
my_time = time(13, 24, 56) 
  
print("Entered time", my_time) 
  
my_time = time(minute = 12) 
print("\nTime with one argument", my_time) 
  
my_time = time() 
print("\nTime without argument", my_time) 
  
  

Ausgabe:

Eingetragene Zeit 13:24:56
Zeit mit einem Argument 00:12:00
Zeit ohne Argument 00:00:00
Traceback (letzter Anruf zuletzt):
  Datei "/home/95ff83138a1b3e67731e57ec6dddef25.py", Zeile 21, in <Modul>
    Drucken (Zeit (Stunde = 26))
ValueError: Stunde muss in 0..23 sein
Traceback (letzter Anruf zuletzt):
  Datei "/home/fcee9ba5615b0b74fc3ba39ec9a789fd.py", Zeile 21, in <Modul>
    Drucken (Zeit (Stunde = '23 '))
TypeError: Eine Ganzzahl ist erforderlich (got type str)
</ module> </ module>

Nach dem Erstellen eines Zeitobjekts können seine Attribute auch separat gedruckt werden.

from datetime import time 
  
Time = time(11, 34, 56) 
  
print("hour =", Time.hour) 
print("minute =", Time.minute) 
print("second =", Time.second) 
print("microsecond =", Time.microsecond) 

Ausgabe:

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

Datetime-Klasse

Informationen zu Datum und Uhrzeit sind in dieser Klasse enthalten. Wie ein Datumsobjekt nimmt datetime den aktuellen Gregorianischen Kalender an, der in beide Richtungen erweitert wurde. Wie bei einem Zeitobjekt geht datetime davon aus, dass jeder Tag genau 3600 * 24 Sekunden umfasst.

Konstruktorsyntax:

Klasse datetime.datetime (Jahr, Monat, Tag, Stunde = 0, Minute = 0, Sekunde = 0, Mikrosekunde = 0, tzinfo = Keine, *, Falte = 0)

Die Argumente für Jahr, Monat und Tag sind obligatorisch. tzinfo kann sein None, ruhen alle Attribute müssen eine ganze Zahl im folgenden Bereich sein -

  • MINYEAR <= Jahr <= MAXYEAR
  • 1 <= Monat <= 12
  • 1 <= Tag <= Anzahl der Tage im angegebenen Monat und Jahr
  • 0 <= Stunde <24
  • 0 <= Minute <60
  • 0 <= Sekunde <60
  • 0 <= Mikrosekunde <1000000
  • falten in [0, 1]

Hinweis - Wenn Sie ein anderes Argument als eine Ganzzahl übergeben, wird ein a TypeErrorausgelöst , und Passign-Argumente außerhalb des Bereichs werden ausgelöst ValueError.

  
from datetime import datetime 
  
a = datetime(1999, 12, 12) 
print(a) 
  
a = datetime(1999, 12, 12, 12, 12, 12, 342380) 
print(a) 

Ausgabe:

1999-12-12 00:00:00
1999-12-12 12: 12: 12.342380

Nach dem Erstellen eines datetime-Objekts können seine Attribute auch separat gedruckt werden.



from datetime import datetime 
  
a = datetime(1999, 12, 12, 12, 12, 12) 
  
print("year =", a.year) 
print("month =", a.month) 
print("hour =", a.hour) 
print("minute =", a.minute) 
print("timestamp =", a.timestamp()) 

Ausgabe:

Jahr = 1999
Monat = 12
Stunde = 12
Minute = 12
Zeitstempel = 945000732.0

Aktuelles Datum und Uhrzeit

Mit der now()Funktion können Sie das aktuelle Datum und die Uhrzeit ausdrucken . Die Funktion now() gibt das aktuelle lokale Datum und die aktuelle Uhrzeit zurück.

from datetime import datetime 
  
today = datetime.now() 
  
print("Current date and time is", today) 

Ausgabe:

Aktuelles Datum und Uhrzeit ist 2019-10-25 11: 12: 11.289834

Andere Funktionen der datetime-Klasse sind -

Funktionsname Beschreibung
utcnow() Geben Sie das aktuelle UTC-Datum und die aktuelle UTC-Uhrzeit mit tzinfo None zurück.
fromtimestamp (Zeitstempel, tz = Keine) Geben Sie das lokale Datum und die Uhrzeit zurück, die dem POSIX-Zeitstempel entsprechen.
utcfromtimestamp (Zeitstempel) Geben Sie die dem POSIX-Zeitstempel entsprechende UTC-Datumszeit mit tzinfo None zurück.
fromordinal (ordinal) Geben Sie die Datumszeit zurück, die der proleptischen gregorianischen Ordnungszahl entspricht, wobei der 1. Januar des Jahres 1 die Ordnungszahl 1 hat.
kombinieren (Datum, Uhrzeit, tzinfo = self.tzinfo) Gibt ein neues Datum / Uhrzeit-Objekt zurück, dessen Datumskomponenten den angegebenen Datumsobjekten entsprechen und dessen Zeitkomponenten den angegebenen Zeitobjekten entsprechen.
fromisoformat (date_string) Gibt eine Datums- / Uhrzeitangabe zurück, die einer Datumszeichenfolge in einem der von date.isoformat() und datetime.isoformat() ausgegebenen Formate entspricht.
strptime (date_string, format) Gibt eine Datums- / Uhrzeitangabe zurück, die date_string entspricht und nach Format analysiert wird.

Timedelta-Klasse

Die Python timedelta() -Funktion ist in der datetime-Bibliothek vorhanden, die im Allgemeinen zur Berechnung von Datumsunterschieden verwendet wird und auch für Datumsmanipulationen in Python verwendet werden kann. Dies ist eine der einfachsten Möglichkeiten, Datumsmanipulationen durchzuführen.

Konstruktorsyntax:

Klasse datetime.timedelta (Tage = 0, Sekunden = 0, Mikrosekunden = 0, Millisekunden = 0, Minuten = 0, Stunden = 0, Wochen = 0)

Rückgabe: Datum

    
from datetime import datetime, timedelta  
    
    
ini_time_for_now = datetime.now()  
    
print ("initial_date", str(ini_time_for_now))  
    
future_date_after_2yrs = ini_time_for_now + timedelta(days = 730
    
future_date_after_2days = ini_time_for_now + timedelta(days = 2
    
print('future_date_after_2yrs:', str(future_date_after_2yrs))  
print('future_date_after_2days:', str(future_date_after_2days))  

Ausgabe:

initial_date 2019-10-25 12: 01: 01.227848
future_date_after_2yrs: 2021-10-24 12: 01: 01.227848
future_date_after_2days: 2019-10-27 12: 01: 01.227848

Mit dieser Klasse kann auch ein Zeitunterschied festgestellt werden.



from datetime import datetime, timedelta  
    
ini_time_for_now = datetime.now()  
    
print ("initial_date", str(ini_time_for_now))  
    
new_final_time = ini_time_for_now + 
                 timedelta(days = 2
    
print ("new_final_time", str(new_final_time))  
    
    
print('Time difference:', str(new_final_time - 
                             ini_time_for_now))  

Ausgabe:

initial_date 2019-10-25 12: 02: 32.799814
new_final_time 2019-10-27 12: 02: 32.799814
Zeitunterschied: 2 Tage, 0:00:00

Tzinfo Klasse

Dies ist eine abstrakte Basisklasse, was bedeutet, dass diese Klasse nicht direkt instanziiert werden sollte. Eine Instanz von (einer konkreten Unterklasse von) tzinfo kann für Datums- und Zeitobjekte an die Konstruktoren übergeben werden. Die letzteren Objekte sehen ihre Attribute als in Ortszeit befindlich an, und das tzinfo-Objekt unterstützt Methoden, die den Versatz der Ortszeit von UTC, den Namen der Zeitzone und den DST-Versatz anzeigen, alle relativ zu einem an sie übergebenen Datums- oder Zeitobjekt. Um mehr über diese Klasse zu erfahren, klicken Sie hier .

Zeitzonenklasse

Die Zeitzonenklasse ist eine Unterklasse von tzinfo, von der jede Instanz eine Zeitzone darstellt, die durch einen festen Versatz von UTC definiert ist.

Konstruktorsyntax:

Klasse datetime.timezone (Offset, Name = Keine)

Das Offset-Argument muss als Zeitdelta-Objekt angegeben werden, das die Differenz zwischen der Ortszeit und der UTC darstellt.

Hinweis - ValueError wird ausgelöst, wenn der Offset nicht zwischen -timedelta(hours=24)und liegt timedelta(hours=24).