[Python] Type de classe et utilisation du module datetime

[Note] Types de classes et utilisation du module datetime de python

Vérifiez les types et les différences de classes qui peuvent être utilisées dans le module datetime de python avec un exemple.

Site officiel

Type de classe

6 types de classes (types de données) sont disponibles

  1. datetime.date: Date (année, mois, jour)
  2. datetime.time: Heure (heures, minutes, secondes, microsecondes)
  3. datetime.datetime: date + heure
  4. datetime.timedelta: Décalage horaire
  5. datetime.timezone: réglage du fuseau horaire
  6. datetime.tzinfo: informations sur le fuseau horaire

Contenu de chaque classe

0. Conditions supplémentaires

Appelez le module datetime en tant que dt.

Appelez le module datetime


import datetime as dt

▼ Exemple d'utilisation réelle datetime.date s'écrit dt.date

  • Datetime.datetime.date entraînera une erreur (name 'datetime' is not defined)
  1. datetime.date

Résultat de l'exécution de dt.date.today () datetime.date(2020, 3, 18) └ type datetime.date └ (2020, 3, 18) = (année, mois, jour)

⇒ ** Les données de l'année, du mois et du jour ** peuvent être acquises. (Attributs: année, mois, jour)


2. datetime.time Il semble que la méthode ne puisse pas être utilisée avec `dt.time`. .. Comme dt.date, je ne peux pas obtenir l'heure actuelle.

--dt.time.now (): erreur --dt.time.today (): Erreur

type object 'datetime.time' has no attribute 'today'

** ■ Comment utiliser ** Précisez vous-même l'heure.

Efficace lorsque vous n'avez pas besoin de données de date et que vous souhaitez rappeler ou modifier uniquement les données de temps.

Numéro spécifié

Spécifier et appeler l'heure (datetime).time)



#Régler l'heure
timeA = dt.time(10, 30, 45, 123456) 

#Temps d'appel
timeA.hour  #Résultat d'exécution: 10
timeA.minute #Résultat d'exécution: 30
timeA.second #Résultat de l'exécution: 45
timeA.microsecond #Résultat de l'exécution: 123456

Changer l'heure (remplacer)())


#Régler l'heure
timeA = dt.time(10, 30, 45, 123456) 

#(1)Changer individuellement
timeA = timeA.replace(hour=5)  
timeA

#Résultat d'exécution
# → datetime.time(5, 30, 45, 123456) 


#(2)Tout changer à la fois
timeA = timeA.replace(hour=1, minute=2, second=30, microsecond=400)
timeA

#Résultat de sortie
# → datetime.time(1, 2, 30, 400)

3. datetime.datetime

Résultat de l'exécution de dt.datetime.today () datetime.datetime(2020, 3, 18, 7, 42, 54, 95450) └ type datetime.datetime   └ (2020, 3, 18, 7, 42, 54, 95450) (Année, mois, jour, heure, minute, seconde, microseconde)

⇒ ** Vous pouvez obtenir 7 données d'année, de mois, de jour, d'heure, de minute, de seconde et de microseconde **. (Attributs: année, mois, jour, heure, minute, microseconde)

  • J'ai aussi tzinfo (tz: informations sur le fuseau horaire) au verso.

** ▼ tzinfo (tz: informations sur le fuseau horaire) ** Les informations sont générées lorsque la méthode est exécutée avec now sans parenthèses.

Afficher les informations sur le fuseau horaire


dt.datetime.now
<function datetime.now(tz=None)>

** ■ maintenant () et aujourd'hui () ** Une méthode souvent utilisée dans datetime.datetime. * Les deux sont identiques

Méthodes fréquemment utilisées aujourd'hui et aujourd'hui


#.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)** Il est possible de combiner le type de date et le type d'heure. `datetime.datetime.combine(A, B)`

Combinaison de méthodes fréquemment utilisées


#.combine(A, B)
dateA = dt.date(2020,5,6)
timeA = dt.time(10,20,0)

dt.datetime.combine(dateA, timeA)

#Résultat de sortie
# → datetime.datetime(2020, 5, 6, 10, 30, 0)

S'il est différent du type spécifié tel que cobmbine (timeA, dateB), une erreur se produira.

combine() argument 1 must be datetime.date, not datetime.time


**■replace()** La valeur numérique spécifiée par l'argument peut être modifiée (un multiple peut être spécifié)

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

#Résultat de sortie
# → datetime.datetime(2018, 3, 18, 5, 30, 30, 474609)

** ■ Jour de sortie ** jour de la semaine (): 0-6 (lundi 0-dimanche 6) ʻIsoweekday () `: 1-6 (lundi 1-dimanche 7)

production Mois Feu eau bois Argent sol journée
weekday() 0 1 2 3 4 5 6
isoweekday() 1 2 3 4 5 6 7

Sortie de jour


today = dt.datetime.today()  #datetime.datetime(2020, 3, 18, 22, 30, 46, 646567)

#.weekday()
today.weekday() #Sortie: 2 → mercredi

#.isoweekday()
today.weekday() #Sortie: 3 → mercredi

** ■ Sortie uniquement date ou heure ** date() :year、month、day time() :hour、minute、second、microsecond

Sortie date / heure


now = dt.datetime.now()
#datetime.datetime(2020, 3, 18, 22, 35, 50, 177279)

#.time()
now.time() #Sortie: datetime.time(22, 38, 1, 997649)

#.date()
now.date() #datetime.date(2020, 3, 18)

4. datetime.timedelta ・ Vous pouvez ajouter et soustraire des dates et des heures. -Le résultat de la soustraction des dates est affiché comme timedelta.

--timedelta n'effectue pas de traitement d'addition / soustraction.

Des arguments non spécifiés ou des arguments incorrects (tels que la forme singulière) entraîneront une erreur

'years' is an invalid keyword argument for __new__()

** Comment utiliser ** (1) Ajoutez 2 semaines au 1er janvier 2020 + dt.timedelta(weeks=2)

Ajouter avec timedelta


newyear = dt.datetime(2020, 1, 1)  #Définir le 1er janvier 2020 comme type datetime
newyear + dt.timedelta(weeks=2)

#Résultat d'exécution
#datetime.datetime(2020, 1, 15, 0, 0)
#→ 15 janvier 2020

(2) 25 heures soustraites du 1er janvier 2020 `+ dt.timedelta(hours=-25)`

Soustraire avec timedelta


newyear = dt.datetime(2020, 1, 1)  #Définir le 1er janvier 2020 comme type datetime
newyear + dt.timedelta(hours=-25)

#Résultat d'exécution
datetime.datetime(2019, 12, 30, 23, 0)
#→ 30 décembre 2019 23:00

** Supplément ** (3) Les parties de données que vous ne possédez pas sont également ** calculées **

** ▼ Exemple ** -Aucune erreur ne se produit même si l'heure est ajoutée au type de date (qui n'a pas de données d'heure). ・ Le résultat calculé s'affiche. └ Calculé dans la partie cachée

Traitement des données que le moule ne possède pas


newyear2 = dt.date(2020, 1, 1)  #datetime.type de date (n'a pas de données d'heure)
newyear2 + dt.timedelta(hours=100) #Ajouter 100 heures

#Résultat d'exécution
#datetime.date(2020, 1, 5)
#→ 5 janvier 2020

(3) Résultat de la différence de date Calculez l'intervalle entre certaines dates.

Trouvez l'intervalle entre deux dates (cas 1)


dateA = dt.date(2020,1,1)
dateB = dt.date(2020,1,9)

dateA - dateB  #Sortie: datetime.timedelta(days=-8)
dateB - dateA  #Sortie: datetime.timedelta(days=8)

Trouvez l'intervalle entre deux dates(Cas 2)


pastA = dt.datetime(2000, 1, 1)
now = dt.datetime.now()  #Sortie: datetime.datetime(2020, 3, 18, 22, 56, 50, 604259)

now - pastA

#Résultat de sortie
#datetime.timedelta(days=7382, seconds=82358, microseconds=594717)

L'ajout est une erreur (* "+" n'est pas pris en charge)

unsupported operand type(s) for +


5. datetime.timezone Utilisé lors du réglage du fuseau horaire par vous-même.

dt.timezone(dt.timedelta(hours=AAA), 'BBB')

Il y a deux valeurs à définir.

--AAA: Dans quelle mesure s'écarte-t-il de la norme?

** ▼ Méthode de réglage ** ① Royaume-Uni (UCT. Standard: +0 heures) [≒ GMT] datetime.timezone(datetime.timedelta(0), 'UCT')

② Toronto (EDT.-4) datetime.timezone(datetime.timedelta(-4), 'EST')

③ Japon (JST. +9) dt.timezone(dt.timedelta(hours=+9), 'JST')

** ▼ Exemple d'utilisation réelle ** Réglez l'heure à Toronto (EDT) et appelez l'heure actuelle.

Comment utiliser le fuseau horaire(Heure à Toronto)


EDT = dt.timezone(dt.timedelta(hours=-4),'EDT')
EDT #Sortie: datetime.timezone(datetime.timedelta(days=-1, seconds=72000), 'EDT')

dt.datetime.now(EDT)

#Résultat de sortie
# datetime.datetime(2020, 3, 18, 10, 34, 8, 685415, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=72000), 'EDT'))

** ■ Supplément: Différence entre UTC et GMT **

** ① UTC: temps universel coordonné ** └Heure standard mondiale actuelle └ Calculé à partir de la fréquence des atomes de césium

** ② GMT: heure moyenne de Greenwich ** └ Heure standard passée └ Calculé à partir des résultats de mesure de l'Observatoire de Greenwich └ Greenwich est une ville juste au sud de Londres

  • Ni l'un ni l'autre n'est très différent (UTC ≒ GMT)

6. datetime.tzinfo Il fournit le concept de ** réglage de l'heure personnalisable ** tel que le fuseau horaire et l'heure d'été (dit-il).

Recommended Posts

[Python] Type de classe et utilisation du module datetime
[Python] Type de classe et utilisation du module datetime
J'ai essayé d'utiliser le module Datetime de Python
Utilisation des locaux Python ()
[Python] Créer une liste de date et d'heure (type datetime) pour une certaine période
Python - Explication et résumé de l'utilisation des 24 meilleurs packages
[Python] Erreur de type: résumé des causes et des solutions pour "Aucun type"
[python] Calcul des mois et des années de différence de date / heure
Récapitulatif du traitement de la date en Python (datetime et dateutil)
[Python] Utilisation correcte de la carte
Python: variables de classe et d'instance
Mise à jour automatique du module Python
Python - Vérifiez le type de valeurs
À propos de la date et du fuseau horaire Python
Module de débogage et de test Python
Exemple d'utilisation de pickle Python
Utilisation basique de la f-string Python
[Python] Utilisation correcte de la jointure
Installation source et installation de Python
Module [Python of Hikari-] Chapitre 08-03 (Importation et utilisation de la bibliothèque standard)
Ordre de référence des variables de classe et des variables d'instance dans "self. Variables de classe" en Python
Construction d'environnement de python et opencv
L'histoire de Python et l'histoire de NaN
objet perl et classe python partie 2.
Installer SciPy et matplotlib (Python)
[Hikari-Python] Chapitre 09-03 Classe (Héritage)
[python] week1-3: Type de nombre et opération
Coopération entre le module python et l'API
Calcul de la classe auto-fabriquée et de la classe existante
Ceci et cela des propriétés python
Module de socket Python 3 et flux de communication de socket
objet perl et classe python partie 1.
[python] Utilisation correcte de l'instruction if
Coexistence de Python2 et 3 avec CircleCI (1.0)
Résumé des index et des tranches Python
Réputation des livres Python et des livres de référence
[Python] Modèle de base et utilisation de l'instruction if (opérateur de comparaison et opérateur booléen)
Installation du code Visual Studio et installation de python
Conversion de la chaîne <-> date (date, datetime) en Python
[Mémo d'apprentissage] Bases de la classe par python
Exemple d'utilisation de variables de classe et de méthodes de classe
Passez le chemin du module python importé
[Python] Visualisez la chaleur de Tokyo et de la préfecture ○○ (mémo d'utilisation de DataFrame)
Module d'implémentation de file d'attente et Python "deque"
Comparaison des modules de conversion japonais en Python3
Extraction de tweet.js (json.loads et eval) (Python)
Créer un diagramme de relations des modules Python
Connectez beaucoup de Python ou et et
Coexistence de la journalisation Flask et de la journalisation d'autres modules
[Python] Différence entre la méthode de classe et la méthode statique
Comparaison de l'héritage de classe et de la description du constructeur
Recevoir le type de date (datetime) avec ArgumentParser [python]
[python] [meta] Le type de python est-il un type?
Utilisation d'opérateurs non logiques de ou en python
Introduction facile de la série python3 et d'OpenCV3
[Python] Diverses combinaisons de chaînes de caractères et de valeurs
Héritage entre les types numériques Python et NumPy
Importation de modules et gestion des exceptions en python