- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Pour manipuler des dates et des heures on va utiliser le module DateTime etprincipalement trois classes, la classe Date, la classe Time et la classe DateTime.
00:00:10 :Donc vous vous en doutez, la classe Date permet de gérer des dates, la classe Time on l'utiliseraun petit peu moins puisqu'elle sert juste à gérer des heures et généralement on n'a pasvraiment besoin de gérer des heures toute seule. On va souvent utiliser la troisième classe qui
00:00:24 :est la classe DateTime qui va permettre de gérer les deux. Il faut remarquer que ces classes necommencent pas avec une majuscule. Généralement les noms des classes si on suit la convention
00:00:33 :PEP8, elles commencent par une majuscule donc on pourrait s'attendre à avoir quelque chosecomme ça. Là ce n'est pas le cas, ça peut être un petit peu perturbant puisque le nom du module
00:00:41 :c'est DateTime comme ceci et donc quand on va importer DateTime on va avoir deux fois DateTime,on va avoir ici en premier le module et en second la classe. Et si on importe donc directement le
00:00:51 :module, si on fait import DateTime, et bien pour créer un objet de type DateTime il faudra faireDateTime deux fois donc avec le nom du module et le nom de la classe comme ceci. Donc moi je préfère
00:01:01 :importer directement depuis le module en faisant FromDateTime, importer ces classes donc DateTimeet DateTime comme ceci. Comme ça on peut les utiliser directement avec Date, avec Time et
00:01:12 :avec DateTime. Donc toutes ces classes elles disposent d'attributs qui nous permettent d'indiquer uneannée, un mois, un jour, une heure et également des informations de fuseau horaire qu'on ne va pasvoir tout de suite mais par la suite vous verrez qu'on peut avoir dans ces objets des informationsde fuseau horaire. Donc si je veux créer une date par exemple il me suffit de faire une instance à
00:01:32 :partir de la classe Date et de spécifier des attributs comme l'année, le mois et le jour. Vousremarquez également que tous ces attributs ici sont au singulier donc on n'a pas de S ailleurs,Month et Day. Je valide avec Entrée pour créer cet objet et là vous voyez qu'on a bien un objet
00:01:46 :du type DateTime.Date. On peut faire la même chose avec la classe Time en disant par exempleHour égale à 10, Minute égale à 19 et Seconde égale à 10 par exemple. Donc là on a un objet
00:01:58 :du type Time qui représente uniquement les heures et si on veut combiner les deux et bienon a l'objet DateTime et là c'est encore une fois la même chose avec les années, les mois, les jours,on peut ensuite avoir les heures, les minutes et les secondes et on peut même avoir les micro
00:02:14 :secondes mais ça c'est un peu plus rare qu'on l'utilise. Donc moi je veux juste me limiteraux heures, minutes et secondes comme ceci. Donc ces trois classes elles nous permettent de
00:02:21 :représenter des périodes dans le temps en utilisant des nombres entiers pour les années,les mois, les jours etc. Il y a aussi deux méthodes qui peuvent être assez utiles sur ces
00:02:30 :classes qui sont les méthodes Now et Today qui permettent de récupérer dans le cas de Now ladate et l'heure précise à laquelle j'enregistre cette vidéo donc DateTime.Now. Vous voyez que ça
00:02:40 :me retourne ici un objet DateTime avec l'année 2021, 10, 24 donc l'année 24 octobre et j'enregistreà 18h03, 26 secondes et 87238 microsecondes. Et si je refais un DateTime.Now vous voyez que là on
00:02:56 :va être à 18h03 et 41 secondes donc ça va continuer de s'incrémenter comme ça et dereprésenter l'heure à laquelle je crée cet objet. On peut avoir également DateTime.Today qui va nous
00:03:07 :donner la date d'aujourd'hui donc là vous voyez que sur un objet de DateTime et bien on se retrouveégalement avec l'heure, les minutes et les microsecondes. Si par contre je fais ça sur
00:03:17 :l'objet Date là bien entendu on aura uniquement l'année, le mois et le jour puisqu'on n'a pasd'informations d'heure sur cet objet. Donc bien faire attention puisque ça veut dire qu'on ne
00:03:25 :peut pas utiliser cette méthode Now sur un objet Date puisqu'on ne peut pas avoir ces informationsd'heure sur un objet Date. Par contre on peut bien utiliser Today sur un objet DateTime puisque là
00:03:35 :on va récupérer la date d'aujourd'hui et également les heures mais bon vous pouvez utiliser l'un oul'autre ça n'a pas vraiment d'importance. Moi le plus souvent j'utilise DateTime.Now et Date.Today
00:03:44 :donc c'est à vous de voir ce que vous préférez. Vous pouvez utiliser soit Now et Today soit vouspouvez vous dire que vous utilisez tout le temps Today comme ça c'est un petit peu plus simple.
00:03:52 :Moi j'aime bien utiliser Now parce que je trouve que c'est plus explicite dans un script. Si vousavez DateTime.Today et quelqu'un qui lit votre script il va penser que vous voulez uniquement
00:04:00 :récupérer la date d'aujourd'hui alors qu'avec Now on a vraiment cette notion que c'est maintenant,que c'est pas seulement la date mais également l'heure à laquelle on récupère cette information.
00:04:10 :Donc moi j'aime bien séparer les deux même si on peut utiliser Today également sur DateTime,je préfère utiliser Now sur DateTime et Today sur Date. Donc une fois qu'on a récupéré ces
00:04:19 :objets, par exemple si je récupère dans une variable Now le temps et l'heure d'aujourd'hui,je peux accéder à ces différents attributs en les mettant tout simplement après mon objet.
00:04:27 :Donc si je veux récupérer l'heure à laquelle j'ai créé cet objet je fais Now.Hour, si je faisNow.Minute vous allez voir qu'on récupère la minute et si je fais seconde on récupère bien
00:04:37 :le nombre de secondes et là ça va être figé dans le temps. Puisque si je refais un DateTime.Nowon va recréer cet objet donc là on voit qu'on est maintenant à 18 heures 6 minutes et une seconde etsi je refais Now.Second par contre là on est encore à 38 puisque cet objet ne va pas bouger,
00:04:53 :il ne va pas s'incrémenter. A noter également que vous ne pouvez pas directement modifier unélément en faisant une assignation, donc si je veux modifier par exemple l'heure pour la mettreà 19 heures, si je fais Now.Hour égale à 19 je vais avoir une erreur, on ne peut pas modifier
00:05:07 :directement l'heure comme ceci. Ce qu'on peut faire c'est utiliser la méthode Replace doncpar exemple si je récupère la date d'aujourd'hui je pourrais dire Date.Today comme ceci, la récupérer
00:05:17 :donc dans cette variable Today et si je veux augmenter d'un jour donc rajouter un jour àcette date je peux faire donc une variable que je vais appeler par exemple Tomorrow et faireToday.Replace et on va dire que le jour est égal à Today.Day plus 1. Donc là on fait juste ajouter
00:05:32 :une journée grâce à la méthode Replace en passant ici le paramètre Day donc on dit Today.Dayplus 1 donc on va incrémenter de 1 tout simplement la journée. Donc là si j'affiche Today et Tomorrow
00:05:43 :on voit bien qu'on a le 24 octobre pour Today et le 25 octobre pour Tomorrow. Donc ça fonctionnepar contre je vous déconseille d'utiliser cette méthode car elle va pas prendre en compte lesproblèmes de fuseau horaire, de passage à l'heure d'été et toutes ces choses qui peuvent poser pas
00:05:57 :mal de problèmes avec les dates. Donc il y a d'autres façons de faire, Replace ça peut êtrepas mal pour modifier des petits éléments je dirais par exemple si vous voulez modifier juste lesminutes si vous voulez avancer de 5 ou 10 minutes que vous êtes à l'intérieur d'une journée et bien
00:06:10 :là vous pouvez utiliser Replace et ça ne posera pas beaucoup de problèmes par contre si vousvoulez changer une année, des mois ou des jours là comme je vous dis en fonction des heures d'étédes fuseaux horaires etc ça peut causer pas mal de problèmes. Donc sachez qu'elle existe mais on
00:06:22 :va voir qu'il y a d'autres façons de modifier une date notamment avec ce qu'on appelle lesdeltas. Donc voilà pour ces trois classes DateTime, Date et Time. Comme je vous dis Time
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.