Date-heure Python
Dateheure Python
Dans cet article, vous apprendrez à manipuler la date et l'heure en Python à l'aide d'exemples.
Vidéo :Python datetime - Travailler avec les dates et les heures
Python a un module nommé datetime travailler avec des dates et des heures. Créons quelques programmes simples liés à la date et à l'heure avant de creuser plus profondément.
Exemple 1 :Obtenir la date et l'heure actuelles
import datetime
datetime_object = datetime.datetime.now()
print(datetime_object)
Lorsque vous exécutez le programme, la sortie sera quelque chose comme :
2018-12-19 09:26:03.478039
Ici, nous avons importé datetime module utilisant import datetime
déclaration.
Une des classes définies dans le datetime
le module est datetime
classer. Nous avons ensuite utilisé now()
méthode pour créer un datetime
objet contenant la date et l'heure locales actuelles.
Exemple 2 :Obtenir la date actuelle
import datetime
date_object = datetime.date.today()
print(date_object)
Lorsque vous exécutez le programme, la sortie sera quelque chose comme :
2018-12-19
Dans ce programme, nous avons utilisé today()
méthode définie dans le date
classe pour obtenir un date
objet contenant la date locale actuelle.
Qu'y a-t-il dans datetime ?
Nous pouvons utiliser la fonction dir() pour obtenir une liste contenant tous les attributs d'un module.
import datetime
print(dir(datetime))
Lorsque vous exécutez le programme, la sortie sera :
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']
Les classes couramment utilisées dans le module datetime sont :
- classe de rendez-vous
- Classe horaire
- Classe datetime
- Classe timedelta
Classe datetime.date
Vous pouvez instancier date
objets du date
classer. Un objet date représente une date (année, mois et jour).
Exemple 3 :Objet date pour représenter une date
import datetime
d = datetime.date(2019, 4, 13)
print(d)
Lorsque vous exécutez le programme, la sortie sera :
2019-04-13
Si vous vous posez la question, date()
dans l'exemple ci-dessus est un constructeur du date
classer. Le constructeur prend trois arguments :année, mois et jour.
La variable a est un date
objet.
Nous ne pouvons importer que date
classe du datetime
module. Voici comment :
from datetime import date
a = date(2019, 4, 13)
print(a)
Exemple 4 :Obtenir la date actuelle
Vous pouvez créer un date
objet contenant la date actuelle à l'aide d'une méthode de classe nommée today()
. Voici comment :
from datetime import date
today = date.today()
print("Current date =", today)
Exemple 5 :Obtenir la date à partir d'un horodatage
Nous pouvons également créer date
objets à partir d'un horodatage. Un horodatage Unix est le nombre de secondes entre une date particulière et le 1er janvier 1970 à UTC. Vous pouvez convertir un horodatage en date en utilisant fromtimestamp()
méthode.
from datetime import date
timestamp = date.fromtimestamp(1326244364)
print("Date =", timestamp)
Lorsque vous exécutez le programme, la sortie sera :
Date = 2012-01-11
Exemple 6 :Imprimer l'année, le mois et le jour du jour
Nous pouvons facilement obtenir l'année, le mois, le jour, le jour de la semaine, etc. à partir de l'objet date. Voici comment :
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)
dateheure.heure
Un objet temps instancié à partir du time
classe représente l'heure locale.
Exemple 7 :Objet de temps pour représenter le temps
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)
Lorsque vous exécutez le programme, la sortie sera :
a = 00:00:00 b = 11:34:56 c = 11:34:56 d = 11:34:56.234566
Exemple 8 :Imprimer l'heure, la minute, la seconde et la microseconde
Une fois que vous avez créé un time
objet, vous pouvez facilement imprimer ses attributs tels que heure , minute etc.
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)
Lorsque vous exécutez l'exemple, le résultat sera :
hour = 11 minute = 34 second = 56 microsecond = 0
Notez que nous n'avons pas dépassé microseconde dispute. D'où sa valeur par défaut 0
est imprimé.
dateheure.dateheure
Le datetime
module a une classe nommée dateclass
qui peut contenir des informations à la fois de date et temps objets.
Exemple 9 :Objet datetime Python
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)
Lorsque vous exécutez le programme, la sortie sera :
2018-11-28 00:00:00 2017-11-28 23:55:59.342380
Les trois premiers arguments année , mois et jour dans le datetime()
constructeur sont obligatoires.
Exemple 10 :Imprimer l'année, le mois, l'heure, les minutes et l'horodatage
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())
Lorsque vous exécutez le programme, la sortie sera :
year = 2017 month = 11 day = 28 hour = 23 minute = 55 timestamp = 1511913359.34238
datetime.timedelta
Un timedelta
l'objet représente la différence entre deux dates ou heures.
Exemple 11 :Différence entre deux dates et heures
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))
Lorsque vous exécutez le programme, la sortie sera :
t3 = 201 days, 0:00:00 t6 = -333 days, 1:14:20 type of t3 = <class 'datetime.timedelta'> type of t6 = <class 'datetime.timedelta'>
Remarquez, les deux t3 et t6 sont de <class 'datetime.timedelta'>
saisir.
Exemple 12 :Différence entre deux objets timedelta
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)
Lorsque vous exécutez le programme, la sortie sera :
t3 = 14 days, 13:55:39
Ici, nous avons créé deux timedelta
objets t1 et t2 , et leur différence est imprimée à l'écran.
Exemple 13 :impression d'un objet timedelta négatif
from datetime import timedelta
t1 = timedelta(seconds = 33)
t2 = timedelta(seconds = 54)
t3 = t1 - t2
print("t3 =", t3)
print("t3 =", abs(t3))
Lorsque vous exécutez le programme, la sortie sera :
t3 = -1 day, 23:59:39 t3 = 0:00:21
Exemple 14 :Durée en secondes
Vous pouvez obtenir le nombre total de secondes dans un objet timedelta en utilisant total_seconds()
méthode.
from datetime import timedelta
t = timedelta(days = 5, hours = 1, seconds = 33, microseconds = 233423)
print("total seconds =", t.total_seconds())
Lorsque vous exécutez le programme, la sortie sera :
total seconds = 435633.233423
Vous pouvez également trouver la somme de deux dates et heures en utilisant +
opérateur. De plus, vous pouvez multiplier et diviser un timedelta
objet par entiers et flottants.
Dateheure au format Python
La façon dont la date et l'heure sont représentées peut être différente selon les lieux, les organisations, etc. Il est plus courant d'utiliser mm/dd/yyyy
aux États-Unis, alors que dd/mm/yyyy
est plus courant au Royaume-Uni.
Python a strftime()
et strptime()
méthodes pour gérer cela.
Python strftime() - objet datetime en chaîne
Le strftime()
la méthode est définie sous les classes date
, datetime
et time
. La méthode crée une chaîne formatée à partir d'un date
donné , datetime
ou time
objet.
Exemple 15 :formater la date avec 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)
Lorsque vous exécutez le programme, la sortie sera quelque chose comme :
time: 04:34:52 s1: 12/26/2018, 04:34:52 s2: 26/12/2018, 04:34:52
Ici, %Y
, %m
, %d
, %H
etc. sont des codes de format. Le strftime()
prend un ou plusieurs codes de format et renvoie une chaîne formatée basée sur celui-ci.
Dans le programme ci-dessus, t , s1 et s2 sont des chaînes.
%Y
- année [0001,..., 2018, 2019,..., 9999]%m
- mois [01, 02, ..., 11, 12]%d
- jour [01, 02, ..., 30, 31]%H
- heure [00, 01, ..., 22, 23%M
- minute [00, 01, ..., 58, 59]%S
- seconde [00, 01, ..., 58, 59]
Pour en savoir plus sur strftime()
et les codes de format, visitez :Python strftime().
Python strptime() - chaîne à datetime
Le strptime()
la méthode crée un datetime
objet à partir d'une chaîne donnée (représentant la date et l'heure).
Exemple 16 :strptime()
from datetime import datetime
date_string = "21 June, 2018"
print("date_string =", date_string)
date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)
Lorsque vous exécutez le programme, la sortie sera :
date_string = 21 June, 2018 date_object = 2018-06-21 00:00:00
Le strptime()
la méthode prend deux arguments :
- une chaîne représentant la date et l'heure
- code de format équivalent au premier argument
Au fait, %d
, %B
et %Y
les codes de format sont utilisés pour jour , mois (nom complet) et année respectivement.
Visitez Python strptime() pour en savoir plus.
Gérer le fuseau horaire en Python
Supposons que vous travaillez sur un projet et que vous devez afficher la date et l'heure en fonction de leur fuseau horaire. Plutôt que d'essayer de gérer vous-même le fuseau horaire, nous vous suggérons d'utiliser un module pytZ tiers.
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"))
Lorsque vous exécutez le programme, la sortie sera quelque chose comme :
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
Ici, datetime_NY et datetime_Londres sont des objets datetime contenant la date et l'heure actuelles de leur fuseau horaire respectif.
Python