Vérifiez les types et les différences de classes qui peuvent être utilisées dans le module datetime de python avec un exemple.
6 types de classes (types de données) sont disponibles
datetime.date
: Date (année, mois, jour)datetime.time
: Heure (heures, minutes, secondes, microsecondes)datetime.datetime
: date + heuredatetime.timedelta
: Décalage horairedatetime.timezone
: réglage du fuseau horairedatetime.tzinfo
: informations sur le fuseau horaireAppelez 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)
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)
--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.
.hour
)
--Modifier les données spécifiées (Exemple: .replace (hour = 1)
)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)
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)>
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)
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)
et
B = type datetime.time`.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
#.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)
--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
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
** ▼ 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
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 +
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'))
** ① 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)
Recommended Posts