Hé, bienvenue à vous les gars. Scott Stanlick ici. Dans cette leçon, nous allons jeter un œil à la nouvelle API Java Date/Heure. Nous allons voir beaucoup de rendez-vous locaux, fonctionnalité de date et d'heure du fuseau horaire local. Nous verrons comment travailler avec les périodes et des durées pour déterminer les intervalles de temps entre ces différents types temporels. Et puis enfin, nous examinerons les ajusteurs temporels qui sont juste fous cool. Vous allez en profiter. Commençons donc par jeter un œil à pourquoi l'API Java Date/Time a même vu le jour et c'est une histoire riche. La date et l'heure héritées des calendriers grégoriens et des calendriers et ainsi de suite, existent depuis Java 1.0 et je vous le dis, ils sont assez terribles. Ils ne sont pas thread-safe, ils sont modifiables c'est-à-dire qu'ils peuvent changer en dessous de vous si vous ne faites pas attention. Ils sont très mal conçus en termes de la façon dont ils ont été architecturés. Les dates commencent par 1900, les mois commencent à un, les jours commencent à zéro, et c'est probablement suffisant. C'était juste fou. Et c'était aussi difficile pour gérer les fuseaux horaires avec l'ancien monde. Alors tournons la page et jetons un coup d'oeil à cette nouveauté. La nouvelle API Java Date/Heure est complètement réécrit à partir de zéro. C'est limpide, propre, et ça marche remarquablement bien. C'est immuable, donc vous ne nous verrez pas dire savait ceci, savait cela ou l'autre. Au lieu de cela, nous ferons des choses comme ça. On va dire, j'aimerais savoir quelle est la date locale maintenant. Ou je voudrais savoir quelle est l'heure locale maintenant et date locale, heure locale, ou la combinaison ici, date heure locale, qui combine à la fois la date et l'heure. Ils ne savent rien du fuseau horaire, et souvent tu t'en fous et n'ont pas besoin de savoir. Si vous avez besoin se préoccuper du fuseau horaire, il y a une date et une heure de zone, comme vous pouvez le voir. Ce sont donc les quatre types qui sont essentiellement le fondement en dessous de cela. Il existe donc des tonnes de méthodes, il y a des tonnes de types, mais une fois que vous commencez à voir comment cela fonctionne, ça sort juste de ta langue. Il est si facile de travailler avec. Ainsi, par exemple, maintenant date, qui est ma date locale ici, Je peux dire obtenir mois. Dans ce cas, Je vais utiliser la date et l'heure de la zone maintenant à l'heure du Pacifique. Donc je dis maintenant l'heure de la date de la zone centrale, c'est moi ici. Mais avec la zone, même instant. En d'autres termes, Je veux savoir tout de suite quelle heure il est si j'étais à l'heure du Pacifique et il devrait indiquer deux heures d'avance sur Central. Il se trouve que je suis à Central. Et donc si nous exécutons cette méthode, nous exécutons ce test, nous devrions voir que je suis à l'heure centrale. On devrait voir ça maintenant que l'heure du Pacifique a deux heures d'avance sur moi. Voyons voir ici, 17h54 est mon heure, Centre de Chicago. Ouais, il est 15h54, deux heures avant moi. Alors on y va. On voit la date locale, l'heure locale à la milliseconde près. Nous voyons l'heure de la date locale qui est la combinaison des deux puis nous voyons maintenant l'heure de la date de la zone centrale. C'est donc toute l'enchilada. Et le moins cinq est moins cinq heures hors du temps moyen de Greenwich. Alors quand j'ai demandé quel mois on était, il m'a dit août. Fabuleux. Alors jetons un coup d'oeil à d'autres choses que nous pouvons faire une fois que nous avons établi un point dans le temps, un jour ou une heure. Nous pouvons faire des choses comme ajouter des heures, minutes, jours, années, etc. Nous pouvons le faire ici. Dans ce cas, je dis, J'aimerais savoir ce que sera demain. Donc, si aujourd'hui était le 5 août 2022, eh bien demain va être plus un jour, 6 août 2022. Super, ça aurait du sens. Je regarde mon calendrier. Mais cette chose comprend si cela s'est produit avoir été le 28 février, ce que ça devrait être demain si c'est une année bissextile, si ce n'est pas une année bissextile. Si c'est le 31 décembre et en ajoutant un jour finit par le rouler dans une nouvelle année. Il est parfaitement conscient de tous ces roulements. Il y a donc un plus aujourd'hui. J'ai dit que c'était demain après aujourd'hui, n'est-ce pas ? Et ça se lit juste comme ça. Demain est après aujourd'hui. C'est vrai. Quand je vois qu'aujourd'hui est après demain, ça dit non. Alors je dis aujourd'hui, obtenez le jour de la semaine. C'est écrit vendredi. Obtenez le jour du mois, cinq, obtenir le jour de l'année, 217. Donc, aujourd'hui est le 217e jour de l'année. C'est beau. La rétrocompatibilité est prise en charge. Laissez-moi l'épeler correctement. Prise en charge de la rétrocompatibilité. Et ça marche comme ça. je te l'ai dit tout à l'heure qu'il y avait de vrais problèmes avec l'ancienne date/heure. Comme par exemple, l'année a commencé avec 1900. Donc si je voulais créer mon anniversaire en utilisant l'ancien système, Je dirais 1970 moins 1900. Et puis cinq est le mois, qui est basé sur zéro, qui est juin, qui est six. Et puis la journée était en fait une base, donc 15. Ça devrait être le 15 juin 1970 et je peux l'imprimer. Alors je peux dire, Je voudrais transformer cet anniversaire en héritage dans une date et heure locale. Donc, c'est le pont, si vous voulez prendre le vieil homme et transformez-le en une nouvelle heure locale. Alors lançons ça. Je devrais voir l'ancienne date et puis je devrais voir la nouvelle date qui est effectivement le même point sur la chronologie. Il y a donc la date de naissance héritée qui était le lundi 15 juin, CBT 1970, et voici la date moderne, qui est la date et l'heure locales, et ils sont tous les deux le 15 juin 1970. Ils ont donc parfaitement fonctionné. Impressionnant. Merci d'avoir regardé.