Überprüfen Sie anhand eines Beispiels die Typen und Unterschiede von Klassen, die im datetime-Modul von Python verwendet werden können.
Es stehen 6 Arten von Klassen (Datentypen) zur Verfügung
datetime.date
: Datum (Jahr, Monat, Tag)datetime.time
: Zeit (Stunden, Minuten, Sekunden, Mikrosekunden)datetime.datetime
: Datum + Uhrzeitdatetime.timedelta
: Zeitdifferenzdatetime.timezone
: Zeitzoneneinstellungdatetime.tzinfo
: ZeitzoneninformationenRufen Sie das datetime-Modul als dt auf.
Rufen Sie das datetime-Modul auf
import datetime as dt
▼ Beispiel für die tatsächliche Verwendung
datetime.date
wird als dt.date
geschrieben
- Datetime.datetime.date führt zu einem Fehler (name 'datetime' is not defined)
Ausführungsergebnis von dt.date.today ()
datetime.date(2020, 3, 18)
└ datetime.date-Typ
└ (2020, 3, 18) = (Jahr, Monat, Tag)
⇒ ** Daten für Jahr, Monat und Tag ** können erfasst werden. (Attribute: Jahr, Monat, Tag)
--dt.time.now (): Fehler --dt.time.today (): Fehler
type object 'datetime.time' has no attribute 'today'
** ■ Verwendung ** Geben Sie die Zeit selbst an.
Wirksam, wenn Sie keine Datumsdaten benötigen und nur Zeitdaten abrufen oder ändern möchten.
.hour
)
--Ändern Sie die angegebenen Daten (Beispiel: .replace (Stunde = 1)
)Angegebene Nummer
Angeben und Aufrufen der Uhrzeit (Datum / Uhrzeit).time)
#Stellen Sie die Zeit ein
timeA = dt.time(10, 30, 45, 123456)
#Zeit für Anrufe
timeA.hour #Ausführungsergebnis: 10
timeA.minute #Ausführungsergebnis: 30
timeA.second #Ausführungsergebnis: 45
timeA.microsecond #Ausführungsergebnis: 123456
Zeit ändern (ersetzen)())
#Stellen Sie die Zeit ein
timeA = dt.time(10, 30, 45, 123456)
#(1)Individuell ändern
timeA = timeA.replace(hour=5)
timeA
#Ausführungsergebnis
# → datetime.time(5, 30, 45, 123456)
#(2)Ändern Sie alles auf einmal
timeA = timeA.replace(hour=1, minute=2, second=30, microsecond=400)
timeA
#Ausgabeergebnis
# → datetime.time(1, 2, 30, 400)
Ausführungsergebnis von dt.datetime.today ()
datetime.datetime(2020, 3, 18, 7, 42, 54, 95450)
└ datetime.datetime-Typ
└ (2020, 3, 18, 7, 42, 54, 95450)
(Jahr, Monat, Tag, Stunde, Minute, Sekunde, Mikrosekunde)
⇒ ** Sie können 7 Daten von Jahr, Monat, Tag, Stunde, Minute, Sekunde und Mikrosekunde erhalten **. (Attribute: Jahr, Monat, Tag, Stunde, Minute, Mikrosekunde)
- Ich habe auch tzinfo (tz: Zeitzoneninformationen) auf der Rückseite.
** ▼ tzinfo (tz: Zeitzoneninformationen) ** Informationen werden ausgegeben, wenn die Methode jetzt ohne Klammern ausgeführt wird.
Zeitzoneninformationen anzeigen
dt.datetime.now
<function datetime.now(tz=None)>
Häufig verwendete Methoden heute und heute
#.now()
dtNow = dt.datetime.now()
dtNow #datetime.datetime(2020, 3, 18, 21, 28, 13, 409431)
#.today()
dtToday = dt.datetime.today()
dtToday #datetime.datetime(2020, 3, 18, 22, 45, 10, 518281)
Häufig verwendete Methode kombinieren
#.combine(A, B)
dateA = dt.date(2020,5,6)
timeA = dt.time(10,20,0)
dt.datetime.combine(dateA, timeA)
#Ausgabeergebnis
# → datetime.datetime(2020, 5, 6, 10, 30, 0)
Wenn es sich von dem angegebenen Typ wie cobmbine (timeA, dateB) unterscheidet, tritt ein Fehler auf.
combine() argument 1 must be datetime.date, not datetime.time
replace
#.replace()
dtNow =dt.datetime.now()
dtNow # datetime.datetime(2020, 3, 18, 22, 10, 15, 517216)
dtNow = dtNow.replace(year=2018)
dtNow = dtNow.replace(hour=5, minute=30, second=30)
dtNow
#Ausgabeergebnis
# → datetime.datetime(2018, 3, 18, 5, 30, 30, 474609)
** ■ Ausgabetag **
Wochentag ()
: 0-6 (Montag 0-Sonntag 6)
isoweekday ()
: 1-6 (Montag 1-Sonntag 7)
Ausgabe | Mond | Feuer | Wasser | Holz | Geld | Boden | Tag |
---|---|---|---|---|---|---|---|
weekday() | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
isoweekday() | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Tagesausgabe
today = dt.datetime.today() #datetime.datetime(2020, 3, 18, 22, 30, 46, 646567)
#.weekday()
today.weekday() #Ausgabe: 2 → Mittwoch
#.isoweekday()
today.weekday() #Ausgabe: 3 → Mittwoch
** ■ Nur Datum oder Uhrzeit ausgeben **
date()
:year、month、day
time()
:hour、minute、second、microsecond
Datums- / Uhrzeitausgabe
now = dt.datetime.now()
#datetime.datetime(2020, 3, 18, 22, 35, 50, 177279)
#.time()
now.time() #Ausgabe: Datum / Uhrzeit.time(22, 38, 1, 997649)
#.date()
now.date() #datetime.date(2020, 3, 18)
--timedelta führt keine Additions- / Subtraktionsverarbeitung durch.
Nicht spezifizierte Argumente oder falsche Argumente (wie Singularform) führen zu einem Fehler
'years' is an invalid keyword argument for __new__()
** Wie benutzt man **
(1) Fügen Sie dem 1. Januar 2020 zwei Wochen hinzu
+ dt.timedelta(weeks=2)
Mit timedelta hinzufügen
newyear = dt.datetime(2020, 1, 1) #Definieren Sie den 1. Januar 2020 als Datum / Uhrzeit-Typ
newyear + dt.timedelta(weeks=2)
#Ausführungsergebnis
#datetime.datetime(2020, 1, 15, 0, 0)
#→ 15. Januar 2020
Mit Zeitdelta subtrahieren
newyear = dt.datetime(2020, 1, 1) #Definieren Sie den 1. Januar 2020 als Datum / Uhrzeit-Typ
newyear + dt.timedelta(hours=-25)
#Ausführungsergebnis
datetime.datetime(2019, 12, 30, 23, 0)
#→ 30. Dezember 2019, 23:00 Uhr
** ▼ Beispiel **
Umgang mit Daten, die die Form nicht hat
newyear2 = dt.date(2020, 1, 1) #datetime.Datumstyp (hat keine Zeitdaten)
newyear2 + dt.timedelta(hours=100) #100 Stunden hinzufügen
#Ausführungsergebnis
#datetime.date(2020, 1, 5)
#→ 5. Januar 2020
Finden Sie das Intervall zwischen zwei Daten (Fall 1)
dateA = dt.date(2020,1,1)
dateB = dt.date(2020,1,9)
dateA - dateB #Ausgabe: Datum / Uhrzeit.timedelta(days=-8)
dateB - dateA #Ausgabe: Datum / Uhrzeit.timedelta(days=8)
Finden Sie das Intervall zwischen zwei Daten(Fall 2)
pastA = dt.datetime(2000, 1, 1)
now = dt.datetime.now() #Ausgabe: Datum / Uhrzeit.datetime(2020, 3, 18, 22, 56, 50, 604259)
now - pastA
#Ausgabeergebnis
#datetime.timedelta(days=7382, seconds=82358, microseconds=594717)
Hinzufügen ist ein Fehler (* "+" wird nicht unterstützt)
unsupported operand type(s) for +
dt.timezone(dt.timedelta(hours=AAA), 'BBB')
Es müssen zwei Werte eingestellt werden.
** ▼ Einstellmethode **
① Vereinigtes Königreich (UCT. Standard: +0 Stunden) [≒ GMT]
datetime.timezone(datetime.timedelta(0), 'UCT')
② Toronto (EDT.-4)
datetime.timezone(datetime.timedelta(-4), 'EST')
③ Japan (JST. +9)
dt.timezone(dt.timedelta(hours=+9), 'JST')
** ▼ Beispiel für die tatsächliche Verwendung ** Stellen Sie die Uhrzeit in Toronto (EDT) ein und rufen Sie die aktuelle Uhrzeit auf.
Wie benutzt man die Zeitzone?(Zeit in Toronto)
EDT = dt.timezone(dt.timedelta(hours=-4),'EDT')
EDT #Ausgabe: Datum / Uhrzeit.timezone(datetime.timedelta(days=-1, seconds=72000), 'EDT')
dt.datetime.now(EDT)
#Ausgabeergebnis
# datetime.datetime(2020, 3, 18, 10, 34, 8, 685415, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000), 'EDT'))
** ① UTC: Koordinierte Weltzeit ** └Aktuelle Weltstandardzeit └ Berechnet aus der Häufigkeit von Cäsiumatomen
** ② GMT: Greenwich Mean Time ** └ Vergangene Standardzeit └ Berechnet aus den Messergebnissen des Greenwich Observatory └ Greenwich ist eine Stadt südlich von London
-Weder ist viel anders (UTC ≒ GMT)
Recommended Posts