Python datetime
Table of Contents
In diesem Artikel lernen Sie anhand von Beispielen, wie Sie Datum und Uhrzeit in Python manipulieren können.
Python hat ein Modul namens datetime, um mit Datums- und Zeitangaben zu arbeiten. Lassen Sie uns ein paar einfache Programme erstellen, die mit Datum und Uhrzeit zu tun haben, bevor wir tiefer einsteigen.
Beispiel 1: Get Current Date and Time
import datetime datetime_object = datetime.datetime.now() print(datetime_object)
Wenn Sie das Programm ausführen, wird die Ausgabe in etwa so aussehen:
2021-07-12 04:19:09.826585
Hier haben wir importiert datetime modul mit import datetime
statement.
Eine der im . definierten Klassen datetime
module is datetime
class. Wir verwendeten dann now()
Methode zum Erstellen eines datetime
Objekt, das das aktuelle lokale Datum und die Uhrzeit enthält.
Beispiel 2: Get Current Date
import datetime date_object = datetime.date.today() print(date_object)
Wenn Sie das Programm ausführen, wird die Ausgabe in etwa so aussehen:
2021-07-13
In diesem Programm haben wir verwendet today()
methode definiert im date
Klasse, um ein zu bekommen date
Objekt, das das aktuelle lokale Datum enthält.
What’s inside datetime?
Wir können die Funktion dir() verwenden, um eine Liste mit allen Attributen eines Moduls zu erhalten.
import datetime print(dir(datetime))
Wenn Sie das Programm ausführen, wird die Ausgabe sein:
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']
Häufig verwendete Klassen im datetime-Modul sind:
- date Class
- time Class
- datetime Class
- timedelta Class
datetime.date Class
Sie können instanziieren date
Objekte aus dem date
class. Ein Datumsobjekt repräsentiert ein Datum (Jahr, Monat und Tag).
Beispiel 3: Date object to represent a date
import datetime d = datetime.date(2019, 4, 13) print(d)
Wenn Sie das Programm ausführen, wird die Ausgabe sein:
2021-07-13
Wenn Sie sich fragen, date()
im obigen Beispiel ist ein Konstruktor der date
class. Der Konstruktor nimmt drei Argumente entgegen: Jahr, Monat und Tag.
The variable a ist eine date
Objekt.
Wir können nur importieren date
Klasse aus dem datetime
Modul. Hier ist wie:
Die Variable a ist eine date
Objekt.
from datetime import date a = date(2021, 7, 13) print(a)
Beispiel 4: Get current date
Sie können eine erstellen date
Objekt, das das aktuelle Datum enthält, mit Hilfe einer Klassenmethode namens today()
. Hier ist wie:
from datetime import date today = date.today() print("Current date =", today)
Beispiel 5: Get date from a timestamp
Wir können auch erstellen date
Objekte aus einem Zeitstempel. Ein Unix-Zeitstempel ist die Anzahl der Sekunden zwischen einem bestimmten Datum und dem 1. Januar 1970 in UTC. Sie können einen Zeitstempel in ein Datum umwandeln mit fromtimestamp()
method.
from datetime import date timestamp = date.fromtimestamp(1326244364) print("Date =", timestamp)
Wenn Sie das Programm ausführen, wird die Ausgabe sein:
Date = 2012-01-11
Beispiel 6: Print today’s year, month and day
Wir können Jahr, Monat, Tag, Wochentag usw. leicht aus dem Datumsobjekt erhalten. Hier ist wie:
from datetime import date # date object of today's date today = date.today() print("Current year:", today.year) print("Current month:", today.month) print("Current day:", today.day)
datetime.time
Ein Zeitobjekt, das aus dem instanziiert wurde time
Klasse repräsentiert die lokale Zeit.
Beispiel 7: Time object to represent time
from datetime import time # time(hour = 0, minute = 0, second = 0) a = time() print("a =", a) # time(hour, minute and second) b = time(11, 34, 56) print("b =", b) # time(hour, minute and second) c = time(hour = 11, minute = 34, second = 56) print("c =", c) # time(hour, minute, second, microsecond) d = time(11, 34, 56, 234566) print("d =", d)
Wenn Sie das Programm ausführen, wird die Ausgabe sein:
a = 00:00:00 b = 11:34:56 c = 11:34:56 d = 11:34:56.234566
Beispiel 8: Print hour, minute, second and microsecond
Sobald Sie eine erstellt habentime
Objekts können Sie dessen Attribute einfach ausdrucken, z. B. hour, minute etc.
Ein Zeitobjekt, das aus dem instanziiert wurde time
Klasse repräsentiert die lokale Zeit.
from datetime import time a = time(11, 34, 56) print("hour =", a.hour) print("minute =", a.minute) print("second =", a.second) print("microsecond =", a.microsecond)
Wenn Sie das Beispiel ausführen, wird die Ausgabe sein:
hour = 11 minute = 34 second = 56 microsecond = 0
Beachten Sie, dass wir nicht bestanden haben microsecond argument. Daher ist sein Standardwert 0
gedruckt wird.
datetime.datetime
The datetime
Modul hat eine Klasse namens dateclass
die Informationen von beiden Objekten enthalten können date and time
Beispiel 9: Python datetime object
from datetime import datetime #datetime(year, month, day) a = datetime(2018, 11, 28) print(a) # datetime(year, month, day, hour, minute, second, microsecond) b = datetime(2017, 11, 28, 23, 55, 59, 342380) print(b)
Wenn Sie das Programm ausführen, wird die Ausgabe sein:
2018-11-28 00:00:00 2017-11-28 23:55:59.342380
Die ersten drei Argumente year, month und day in dem datetime()
Konstruktor sind obligatorisch.
Beispiel 10: Print year, month, hour, minute and timestamp
from datetime import datetime a = datetime(2017, 11, 28, 23, 55, 59, 342380) print("year =", a.year) print("month =", a.month) print("hour =", a.hour) print("minute =", a.minute) print("timestamp =", a.timestamp())
Wenn Sie das Programm ausführen, wird die Ausgabe sein:
year = 2017 month = 11 day = 28 hour = 23 minute = 55 timestamp = 1511913359.34238
datetime.timedelta
A timedelta
Objekt stellt die Differenz zwischen zwei Daten oder Zeiten dar.
Beispiel 11: Difference between two dates and times
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("type of t3 =", type(t3)) print("type of t6 =", type(t6))
Wenn Sie das Programm ausführen, wird die Ausgabe sein:
t3 = 201 days, 0:00:00 t6 = -333 days, 1:14:20 type of t3 = <class 'datetime.timedelta'> type of t6 = <class 'datetime.timedelta'>
Hinweis, beide t3 und t6 sind vom <class 'datetime.timedelta'>
type.
Beispiel 12: Difference between two timedelta objects
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)
Wenn Sie das Programm ausführen, wird die Ausgabe sein:
t3 = 14 days, 13:55:39
Hier haben wir zwei erstellt timedelta
Objekte t1 und t2, und ihre Differenz wird auf dem Bildschirm angezeigt.
Beispiel 13: Printing negative timedelta object
from datetime import timedelta t1 = timedelta(seconds = 33) t2 = timedelta(seconds = 54) t3 = t1 - t2 print("t3 =", t3) print("t3 =", abs(t3))
Wenn Sie das Programm ausführen, wird die Ausgabe sein:
t3 = -1 day, 23:59:39 t3 = 0:00:21
Beispiel 14: Time duration in seconds
Sie können die Gesamtzahl der Sekunden in einem Zeitdelta-Objekt mit ermitteln total_seconds()
method.
from datetime import timedelta t = timedelta(days = 5, hours = 1, seconds = 33, microseconds = 233423) print("total seconds =", t.total_seconds())
Wenn Sie das Programm ausführen, wird die Ausgabe sein:
total seconds = 435633.233423
Sie können auch die Summe zweier Daten und Zeiten mit +
operator. Sie können auch a . multiplizieren und dividierentimedelta
Objekt durch Ganzzahlen und Floats.
Python format datetime
Die Art und Weise, wie Datum und Uhrzeit dargestellt werden, kann an verschiedenen Orten, Organisationen usw. unterschiedlich sein. Es ist üblicher, Folgendes zu verwenden mm/dd/yyyy
in den USA, während dd/mm/yyyy
ist häufiger in Großbritannien more.
Python hat strftime()
und strptime()
Methoden, damit umzugehen.
Python strftime() – datetime object to string
The strftime()
Methode ist unter Klassen definiert date
, datetime
und time
. Die Methode erzeugt eine formatierte Zeichenkette aus einer gegebenen date
, datetime
oder time
Objekt.
Beispiel15: Format date using strftime()
from datetime import datetime # current date and time now = datetime.now() t = now.strftime("%H:%M:%S") print("time:", t) s1 = now.strftime("%m/%d/%Y, %H:%M:%S") # mm/dd/YY H:M:S format print("s1:", s1) s2 = now.strftime("%d/%m/%Y, %H:%M:%S") # dd/mm/YY H:M:S format print("s2:", s2)
Wenn Sie das Programm ausführen, sieht die Ausgabe etwa so aus:
time: 04:34:52 s1: 07/13/2021, 04:34:52 s2: 13/07/2021, 04:34:52
Hier, %Y
, %m
, %d
, %H
usw. sind Formatcodes. Die strftime()
Methode nimmt einen oder mehrere Formatcodes und gibt eine darauf basierende formatierte Zeichenkette zurück.
Im obigen Programm, t, s1 und s2 sind Saiten.
%Y
– year [0001,…, 2018, 2019,…, 9999]%m
– month [01, 02, …, 11, 12]%d
– day [01, 02, …, 30, 31]%H
– hour [00, 01, …, 22, 23%M
– minute [00, 01, …, 58, 59]%S
– second [00, 01, …, 58, 59]
Um mehr zu erfahren über strftime()
und format codes, visit: Python strftime().
Python strptime() – string to datetime
Die strptime()
Methode erstellt a datetime
Objekt aus einer bestimmten Zeichenfolge (die Datum und Uhrzeit darstellt).
Beispiel 16: strptime()
from datetime import datetime date_string = "13 July, 2021" print("date_string =", date_string) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object)
Wenn Sie das Programm ausführen, wird die Ausgabe sein
date_string = 13 July, 2021 date_object = 2021-07-13 00:00:00
Die strptime()
Methode nimmt zwei Argumente entgegen:
- eine Zeichenfolge, die Datum und Uhrzeit darstellt
- Formatcode, der dem ersten Argument entspricht
Apropos, %d
, %B
und %Y
Formatcodes werden verwendet für day, month(full name) und year beziehungsweise.
Besuchen Sie Python strptime(), um mehr zu erfahren.
Handling timezone in Python
Angenommen, Sie arbeiten an einem Projekt und müssen Datum und Uhrzeit basierend auf ihrer Zeitzone anzeigen. Anstatt zu versuchen, die Zeitzone selbst zu handhaben, empfehlen wir Ihnen, einen Drittanbieter zu verwenden pytZ module.
from datetime import datetime import pytz local = datetime.now() print("Local:", local.strftime("%m/%d/%Y, %H:%M:%S")) tz_NY = pytz.timezone('America/New_York') datetime_NY = datetime.now(tz_NY) print("NY:", datetime_NY.strftime("%m/%d/%Y, %H:%M:%S")) tz_London = pytz.timezone('Europe/London') datetime_London = datetime.now(tz_London) print("London:", datetime_London.strftime("%m/%d/%Y, %H:%M:%S"))
Wenn Sie das Programm ausführen, sieht die Ausgabe etwa so aus:
Local time: 2018-12-20 13:10:44.260462 America/New_York time: 2018-12-20 13:10:44.260462 Europe/London time: 2018-12-20 13:10:44.260462
Hier, datetime_NY und datetime_London sind datetime-Objekte, die das aktuelle Datum und die aktuelle Uhrzeit ihrer jeweiligen Zeitzone enthalten.