Lecture et formatage des dates
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Savoir lire et afficher des dates ;
Connaître les fonctions principales de formatage.
Mise en situation
Vous le savez, les dates s'écrivent avec un format spécifique, qui varie selon la langue, les pays, ou les cultures. Ces formats d'écritures sont très utiles pour les humains, pour représenter et identifier les différents élément qui composent une date : l'année, le mois, le jour, l'heure, etc.
Les différents objets de date permettent, dans tous les langages, de retourner les dates manipulées en un format lisible pour les humains. À l'inverse, des fonctions peuvent lire la date saisie par un utilisateur, l'interpréter et construire un objet qui lui correspond.
Syntaxe : Getters
Les getters sont des fonctions permettant de récupérer des informations, comme l'heure, le jour, le mois, etc.
En JavaScript, on utilise notamment :
getFullYear()
,getMonth()
,getDate()
qui renvoient respectivement l'année, le mois et le jour dans le mois. Attention, c'est biengetDate()
qui renvoie le numéro du jour, et nongetDay()
qui renvoie le numéro du jour dans la semaine.En Python, on a des attributs et non des fonctions :
year
,month
,day
qui renvoient respectivement l'année, le mois et le jour dans le mois.
Exemple :
"""Python."""
import datetime
today = datetime.datetime.now()
print('Nous sommes le', today.month, 'ème mois de l\'année ')
/** JavaScript */
const today = new Date()
console.log('Nous sommes le ' + (today.getMonth() + 1) + ' ème mois de l\'année')
Attention :
Étant donné que les mois utilisent un index en JavaScript, getMonth()
retourne bien cet index en partant de 0, et non le numéro du mois comme on le compte.
Syntaxe : Setters
Les setters permettent de modifier les attributs en prenant un paramètre (la nouvelle valeur) entre parenthèses.
En JavaScript, on retrouve les même méthodes sauf que
« set »
remplace« get »
:setFullYear()
,setMonth()
,setDate()
, etc., qui modifient respectivement l'année, le mois, le jour dans le mois, l'heure, les minutes, les secondes et les millisecondes.En Python, il existe la fonction
replace()
qui peut prendre en paramètreyear
,month
,day
, etc.
Exemple :
On remarquera qu'en Python, replace()
renvoie une nouvelle date. Au contraire, en JavaScript, le setter modifie directement la date.
"""Python: récupère la date courante et remplace par le 1er jour du mois."""
import datetime
today = datetime.datetime.now()
first_day = today.replace(day=1)
print('Premier jour du mois en cours: ', first_day)
/** JavaScript: récupère la date courante et remplace par le 1er jour du mois */
const firstDay = new Date()
firstDay.setDate(1)
console.log('Premier jour du mois en cours: ' + firstDay)
Complément : Time
Les getters et setters existent aussi pour les heures, minutes, secondes, etc.
Voir : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date pour le JavaScript et https://docs.python.org/3/library/datetime.html pour le Python.
Syntaxe : Formatage
On fait varier le format d'une date en fonction de l'affichage des informations souhaités.
En Python ,
strftime()
permet de créer une« string from time »
. Il existe de nombreux paramètres permettant de représenter les éléments de la date en version longue ou courte (%Y, %y, %m, etc.).En JavaScript, on dispose de
toLocaleString()
qui prend en paramètre la langue (ou undefined) et un enregistrement qui indique pour chaque champ son format (long, short, 2-digit, etc.).
Exemple :
"""Python."""
import datetime
today = datetime.datetime.now()
print(today) # AAAA-MM-JJ HH:mm:ss.ms
print(today.isoformat()) # AAAA-MM-JJTHH:mm:ss.ms
print(today.strftime("%m/%y/%d")) # MM/JJ/AA
print(today.strftime("%A %d. %B %Y")) # Jour JJ. Mois AAAA
/** JavaScript */
const today = new Date()
console.log(today)
console.log(today.toISOString())
console.log(today.toLocaleString(undefined, {year:'numeric', month: 'numeric', day: 'numeric'}))
console.log(today.toLocaleString(undefined, {year:'numeric', month: 'long', day: 'numeric', weekday: 'short'}))
Remarque : ISO
Le format ISO est un format standardisé sous la forme YYYY-MM-DDTHH:mm:ss.sssZ
. Le 1 janvier 2000, 12h00 devient 2000-01-01T12:00:00.000Z.
Les fonctions toISOString()
en JavaScript et isoformat()
en Python permettent de traduire une date dans ce format.
Complément : Documentation
Les formats des dates et les nombreuses utilisations existantes sont documentées en JavaScript et en Python.
À retenir
Une date créée peut être lue, modifiée et formatée grâce notamment aux getters et setters.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.