[Python] Klassentyp und Verwendung des datetime-Moduls

[Hinweis] Klassentypen und Verwendung des datetime-Moduls von Python

Überprüfen Sie anhand eines Beispiels die Typen und Unterschiede von Klassen, die im datetime-Modul von Python verwendet werden können.

Offizielle Website

Klassentyp

Es stehen 6 Arten von Klassen (Datentypen) zur Verfügung

  1. datetime.date: Datum (Jahr, Monat, Tag)
  2. datetime.time: Zeit (Stunden, Minuten, Sekunden, Mikrosekunden)
  3. datetime.datetime: Datum + Uhrzeit
  4. datetime.timedelta: Zeitdifferenz
  5. datetime.timezone: Zeitzoneneinstellung
  6. datetime.tzinfo: Zeitzoneninformationen

Inhalt jeder Klasse

0. Ergänzende Bedingungen

Rufen 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)
  1. datetime.date

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)


2. datetime.time Es scheint, dass die Methode nicht mit `dt.time` verwendet werden kann. .. Wie bei dt.date kann ich die aktuelle Uhrzeit nicht abrufen.

--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.

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)

3. datetime.datetime

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)>

** ■ jetzt () und heute () ** Eine Methode, die häufig in datetime.datetime verwendet wird. * Beide sind gleich

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)


**■combine(A, B)** Es ist möglich, den Datums- und den Uhrzeittyp zu kombinieren. `datetime.datetime.combine(A, B)`

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()** Der durch das Argument angegebene numerische Wert kann geändert werden (mehrere können angegeben werden).

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)

4. datetime.timedelta ・ Sie können Datums- und Uhrzeitangaben hinzufügen und entfernen. -Das Ergebnis der Subtraktion der Daten wird als Zeitdelta angezeigt.

--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

(2) 25 Stunden abgezogen vom 1. Januar 2020 `+ dt.timedelta(hours=-25)`

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

** Ergänzung ** (3) Datenteile, die Sie nicht haben, werden ebenfalls ** berechnet **

** ▼ 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

(3) Ergebnis der Datumsdifferenz Berechnen Sie das Intervall zwischen bestimmten Daten.

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 +


5. datetime.timezone Wird verwendet, wenn Sie die Zeitzone selbst einstellen.

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'))

** ■ Ergänzung: Unterschied zwischen UTC und GMT **

** ① 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)


6. datetime.tzinfo Es bietet das Konzept der ** anpassbaren Zeitanpassung ** wie Zeitzone und Sommerzeit (sagte er).

Recommended Posts

[Python] Klassentyp und Verwendung des datetime-Moduls
[Python] Klassentyp und Verwendung des datetime-Moduls
Ich habe versucht, das Datetime-Modul von Python zu verwenden
Verwendung von Python-Einheimischen ()
[Python] Erstellen Sie eine Liste mit Datum und Uhrzeit (Datum / Uhrzeit-Typ) für einen bestimmten Zeitraum
Python - Erläuterung und Zusammenfassung der Verwendung der 24 wichtigsten Pakete
[Python] Typfehler: Zusammenfassung der Ursachen und Abhilfemaßnahmen für 'Kein Typ'
[Python] Berechnung der Differenz von Datum und Zeit in Monaten und Jahren
Zusammenfassung der Datumsverarbeitung in Python (Datum / Uhrzeit und Datum)
[Python] Richtige Verwendung der Karte
Python: Klassen- und Instanzvariablen
Automatisches Update des Python-Moduls
Python --Überprüfen Sie den Wertetyp
Informationen zu Python-Datums- und Zeitzone
Python-Debug- und Testmodul
Beispiel für die Verwendung von Python Pickle
Grundlegende Verwendung von Python-F-String
[Python] Richtige Verwendung von Join
Quellinstallation und Installation von Python
[Python of Hikari-] Kapitel 08-03 Modul (Import und Verwendung der Standardbibliothek)
Referenzreihenfolge von Klassenvariablen und Instanzvariablen in "self. Klassenvariablen" in Python
Umgebungskonstruktion von Python und OpenCV
Die Geschichte von Python und die Geschichte von NaN
Perl-Objekt und Python-Klasse Teil 2.
Installation von SciPy und matplotlib (Python)
[Hikari-Python] Kapitel 09-03 Klasse (Vererbung)
[Python] Woche 1-3: Nummerntyp und Operation
Zusammenarbeit zwischen Python-Modul und API
Berechnung der selbst erstellten Klasse und der vorhandenen Klasse
Dies und das von Python-Eigenschaften
Python 3-Socket-Modul und Socket-Kommunikationsfluss
Perl-Objekt und Python-Klasse Teil 1.
[Python] Richtige Verwendung der if-Anweisung
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Zusammenfassung der Python-Indizes und -Slices
Reputation von Python-Büchern und Nachschlagewerken
[Python] Grundlegendes Muster und Verwendung der if-Anweisung (Vergleichsoperator und Boolescher Operator)
Installation von Visual Studio Code und Installation von Python
Konvertierung der Zeichenfolge <-> Datum (Datum, Datum / Uhrzeit) in Python
[Lernnotiz] Grundlagen des Unterrichts mit Python
Beispiel für die Verwendung von Klassenvariablen und Klassenmethoden
Übergeben Sie den Pfad des importierten Python-Moduls
[Python] Visualisieren Sie die Hitze der Präfekturen Tokio und XX (DataFrame-Nutzungsnotiz)
Warteschlangen- und Python-Implementierungsmodul "deque"
Vergleich japanischer Konvertierungsmodule in Python3
Extraktion von tweet.js (json.loads und eval) (Python)
Erstellen Sie ein Beziehungsdiagramm von Python-Modulen
Verbinde viel Python oder und und
Koexistenz von Flask-Protokollierung und anderer Modulprotokollierung
[Python] Unterschied zwischen Klassenmethode und statischer Methode
Vergleich von Klassenvererbung und Konstruktorbeschreibung
Empfangen Sie den Datumstyp (Datum / Uhrzeit) mit ArgumentParser [Python]
[Python] [Meta] Ist der Python-Typ ein Typ?
Nicht logische Operatorverwendung von oder in Python
Einfache Einführung in die Python3-Serie und OpenCV3
[Python] Verschiedene Kombinationen von Zeichenketten und Werten
Vererbung zwischen numerischen Python- und NumPy-Typen
Modulimport und Ausnahmebehandlung in Python