SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
Java 8
Date Time API
antislashn.org Java 8 - Date Time API 2 / 15
Présentation
● Java 8 améliore nettement la manipulation des dates
● Date-Time API - JSR 310
– issu du projet Joda-Time
● package java.time
● cf. http://docs.oracle.com/javase/tutorial/datetime/iso/index.html
● possibilités
– analyse et formatage de dates
– calcul sur les dates
– gestion des dates au format ISO
antislashn.org Java 8 - Date Time API 3 / 15
Présentation
● Thread safety
● les classes Date et Calendar ne sont pas thread safe
● les objets de l'API Date-Time sont immuables
● API simple à comprendre
● les classes Date et Calendar sont complexes à utiliser
pour effectuer des calculs sur les dates
● cette nouvelle API est constituée de date, d'heure, de
durée et de période.
● gestion des fuseaux horaires
antislashn.org Java 8 - Date Time API 4 / 15
Présentation
● Classes de base
● LocalDate
● LocalTime
● LocalDateTime
● comme le préfixe l'indique, elles représentent un jour ou
une heure depuis le contexte d'exécution
● ces classes sont habituellement utilisées lorsque le fuseau
horaire n'a pas besoin d'être précisé
antislashn.org Java 8 - Date Time API 5 / 15
LocalDate
● Représente une date au format yyy-MM-dd
● norme ISO-8601
● nombreuses possibilités pour créer une date
● méthodes statiques
– now(), of(), ofEpochDay(),ofYearDay(),parse()
LocalDate date1 = LocalDate.now();
LocalDate date2 = LocalDate.of(2019, 1, 1);
LocalDate date3 = LocalDate.parse("2019-01-01");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyy");
LocalDate date4 = LocalDate.parse("01/01/2019",formatter);
antislashn.org Java 8 - Date Time API 6 / 15
LocalDate
● Plusieurs méthodes pour exécuter des calculs sur les
dates
● plus(), plusDay(), plusMonth(),
plusWeek(),plusYear()
● minus(), minusDay(), minusMonth(), minusWeek(),
minusYear()
● Des comparaisons
● isLeapYear(), isAfter(), isBefore()
LocalDate date5 = date2.plusDays(1);
LocalDate date6 = date2.plusMonths(2);
LocalDate date7 = date2.minus(3, ChronoUnit.DAYS);
antislashn.org Java 8 - Date Time API 7 / 15
LocaleDate
● Méthodes utilitaires
● retournant le jour, le mois, l'année, l'ère
– get(TemporalField)
– getDayOfWeek(), getDayOfMonth(), getDayOfYear()
– getMonth(), getMonthValue()
– getYear()
– getEra()
System.out.println(date2.getDayOfMonth());
System.out.println(date2.getMonth().toString());
antislashn.org Java 8 - Date Time API 8 / 15
LocaleTime
● Représente une heure
● format hh:mm:ss
● norme ISO-8601
● fonctionnement équivalent à LocaleDate
● méthodes statiques de création
● méthodes de calcul et de comparaison
antislashn.org Java 8 - Date Time API 9 / 15
LocalDateTime
● Représente une combinaison de le date et de l'heure
● format yyy-MM-ddThh:mm:ss
● norme ISO-8601
● fonctionnement équivalent à LocaleDate
● méthodes statiques de création
● méthodes de calcul et de comparaison
antislashn.org Java 8 - Date Time API 10 / 15
Autres classes
● Period
● classe utilitaire permettant de manipuler plus simplement
les dates
● il est aisé de récupérer une période entre deux dates
LocalDate date7 = date2.minus(Period.ofDays(6));
long nbJours = ChronoUnit.DAYS.between(date2, date7);
antislashn.org Java 8 - Date Time API 11 / 15
Autres classes
● Duration
● classe utilitaire permettant de manipuler plus simplement
les heures
● il est aisé de récupérer une durée entre deux heures
LocalTime initialTime = LocalTime.of(6, 30, 0);
LocalTime finalTime = initialTime.plus(Duration.ofSeconds(30));
long nbSecondes = Duration.between(finalTime, initialTime).getSeconds();
antislashn.org Java 8 - Date Time API 12 / 15
Compatibilité
● Java 8 ajoute la méthode toInstant() aux classes
Date et Calendar pour faciliter le passage à l'API
Date Time
LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
LocalDateTime.ofInstant(calendar.toInstant(), ZoneId.systemDefault());
antislashn.org Java 8 - Date Time API 13 / 15
Formatage
● La classe DateTimeFormatter permet de créer de
nombreuses options de formatage
● localisation
● formats personnalisés
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyy");
LocalDate date4 = LocalDate.parse("01/01/2019",formatter);
antislashn.org Java 8 - Date Time API 14 / 15
Formatage
● Attention
● utiliser le bon formatter en fonction de la classe
– ofLocalizedDate()
– ofLocalisedTime()
– ofLocalizedDateTime()
● l'utilisation de FormatStyle.FULL ou
FormatStyle.LONG peut produire une exception
– c'est deux formats peuvent avoir besoin de la partie Time
● cf. https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
antislashn.org Java 8 - Date Time API 15 / 15
Ressources
● https://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html
● https://www.baeldung.com/java-8-date-time-intro
● https://blog.ippon.fr/2014/03/19/java-8-gestion-du-temps/
● https://stackoverrun.com/fr/q/12685455

Weitere ähnliche Inhalte

Was ist angesagt?

Abstract Factory Pattern (Example & Implementation in Java)
Abstract Factory Pattern (Example & Implementation in Java)Abstract Factory Pattern (Example & Implementation in Java)
Abstract Factory Pattern (Example & Implementation in Java)Jubayer Al Mahmud
 
eServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API ManagementeServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API ManagementLilia Sfaxi
 
Cloud et Virtualisation
Cloud et VirtualisationCloud et Virtualisation
Cloud et VirtualisationMarc Jouve
 
Scripting Your Qt Application
Scripting Your Qt ApplicationScripting Your Qt Application
Scripting Your Qt Applicationaccount inactive
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfacesAmir Souissi
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...ENSET, Université Hassan II Casablanca
 
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)Sakka Mustapha
 
Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...
Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...
Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...Michel-Marie Maudet
 
Build your own discovery index of scholary e-resources
Build your own discovery index of scholary e-resourcesBuild your own discovery index of scholary e-resources
Build your own discovery index of scholary e-resourcesMartin Czygan
 
In-Depth Model/View with QML
In-Depth Model/View with QMLIn-Depth Model/View with QML
In-Depth Model/View with QMLICS
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linuxEmmanuel Florac
 

Was ist angesagt? (20)

Abstract Factory Pattern (Example & Implementation in Java)
Abstract Factory Pattern (Example & Implementation in Java)Abstract Factory Pattern (Example & Implementation in Java)
Abstract Factory Pattern (Example & Implementation in Java)
 
eServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API ManagementeServices-Chp5: Microservices et API Management
eServices-Chp5: Microservices et API Management
 
Cloud et Virtualisation
Cloud et VirtualisationCloud et Virtualisation
Cloud et Virtualisation
 
Scripting Your Qt Application
Scripting Your Qt ApplicationScripting Your Qt Application
Scripting Your Qt Application
 
Polymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraitePolymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraite
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Introduction à pl/sql
Introduction à pl/sqlIntroduction à pl/sql
Introduction à pl/sql
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
 
Spring ioc
Spring iocSpring ioc
Spring ioc
 
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
 
Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...
Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...
Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...
 
Build your own discovery index of scholary e-resources
Build your own discovery index of scholary e-resourcesBuild your own discovery index of scholary e-resources
Build your own discovery index of scholary e-resources
 
In-Depth Model/View with QML
In-Depth Model/View with QMLIn-Depth Model/View with QML
In-Depth Model/View with QML
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 
Cours java v1.4
Cours java v1.4Cours java v1.4
Cours java v1.4
 
Flutter, prazer
Flutter, prazerFlutter, prazer
Flutter, prazer
 
Développement informatique : Programmation réseau
Développement informatique : Programmation réseauDéveloppement informatique : Programmation réseau
Développement informatique : Programmation réseau
 

Ähnlich wie Java 8 - DateTime

201303 - Java8
201303 - Java8201303 - Java8
201303 - Java8lyonjug
 
Ms project 2 outils de gestion
Ms project 2  outils de gestionMs project 2  outils de gestion
Ms project 2 outils de gestionJoom La
 
S17 adressez vos besoins complexes de reporting avec db2 web query
S17   adressez vos besoins complexes de reporting avec db2 web queryS17   adressez vos besoins complexes de reporting avec db2 web query
S17 adressez vos besoins complexes de reporting avec db2 web queryGautier DUMAS
 
Tests de performances d'une application Java EE
Tests de performances d'une application Java EETests de performances d'une application Java EE
Tests de performances d'une application Java EEAntonio Gomes Rodrigues
 
Agenda formation OpenIdm
Agenda formation OpenIdmAgenda formation OpenIdm
Agenda formation OpenIdmPascal Flamand
 
Ippon: Doing multi-criteria queries on a Cassandra application (Français)
Ippon: Doing multi-criteria queries on a Cassandra application (Français)Ippon: Doing multi-criteria queries on a Cassandra application (Français)
Ippon: Doing multi-criteria queries on a Cassandra application (Français)DataStax Academy
 
Requêtes multi-critères avec Cassandra
Requêtes multi-critères avec CassandraRequêtes multi-critères avec Cassandra
Requêtes multi-critères avec CassandraJulien Dubois
 
GDG Rennes - Bootcamp Initiation Android - Théorie
GDG Rennes - Bootcamp Initiation Android -  ThéorieGDG Rennes - Bootcamp Initiation Android -  Théorie
GDG Rennes - Bootcamp Initiation Android - ThéorieHoracio Gonzalez
 
Prez soutenance_omar
Prez soutenance_omarPrez soutenance_omar
Prez soutenance_omarOmar Raissi
 
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...Sébastien Prunier
 
Formation msproject pro 2013
Formation msproject pro 2013Formation msproject pro 2013
Formation msproject pro 2013Mehd Semma
 
Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Laurent BUNIET
 
GPars et PrettyTime - Paris JUG 2011 - Guillaume Laforge
GPars et PrettyTime - Paris JUG 2011 - Guillaume LaforgeGPars et PrettyTime - Paris JUG 2011 - Guillaume Laforge
GPars et PrettyTime - Paris JUG 2011 - Guillaume LaforgeGuillaume Laforge
 

Ähnlich wie Java 8 - DateTime (20)

201303 - Java8
201303 - Java8201303 - Java8
201303 - Java8
 
Ms project 2 outils de gestion
Ms project 2  outils de gestionMs project 2  outils de gestion
Ms project 2 outils de gestion
 
S17 adressez vos besoins complexes de reporting avec db2 web query
S17   adressez vos besoins complexes de reporting avec db2 web queryS17   adressez vos besoins complexes de reporting avec db2 web query
S17 adressez vos besoins complexes de reporting avec db2 web query
 
Tests de performances d'une application Java EE
Tests de performances d'une application Java EETests de performances d'une application Java EE
Tests de performances d'une application Java EE
 
Agenda formation OpenIdm
Agenda formation OpenIdmAgenda formation OpenIdm
Agenda formation OpenIdm
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
 
Pert
PertPert
Pert
 
Symposium scrum
Symposium scrumSymposium scrum
Symposium scrum
 
Ippon: Doing multi-criteria queries on a Cassandra application (Français)
Ippon: Doing multi-criteria queries on a Cassandra application (Français)Ippon: Doing multi-criteria queries on a Cassandra application (Français)
Ippon: Doing multi-criteria queries on a Cassandra application (Français)
 
Requêtes multi-critères avec Cassandra
Requêtes multi-critères avec CassandraRequêtes multi-critères avec Cassandra
Requêtes multi-critères avec Cassandra
 
GDG Rennes - Bootcamp Initiation Android - Théorie
GDG Rennes - Bootcamp Initiation Android -  ThéorieGDG Rennes - Bootcamp Initiation Android -  Théorie
GDG Rennes - Bootcamp Initiation Android - Théorie
 
METHODES DE PERT ET GANT
METHODES DE PERT ET GANT METHODES DE PERT ET GANT
METHODES DE PERT ET GANT
 
YaJUG - Spring 3.0
YaJUG - Spring 3.0YaJUG - Spring 3.0
YaJUG - Spring 3.0
 
Gestion de projet industriel
Gestion de projet industrielGestion de projet industriel
Gestion de projet industriel
 
Prez soutenance_omar
Prez soutenance_omarPrez soutenance_omar
Prez soutenance_omar
 
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
 
Formation msproject pro 2013
Formation msproject pro 2013Formation msproject pro 2013
Formation msproject pro 2013
 
Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1
 
Android ORMLite
Android   ORMLiteAndroid   ORMLite
Android ORMLite
 
GPars et PrettyTime - Paris JUG 2011 - Guillaume Laforge
GPars et PrettyTime - Paris JUG 2011 - Guillaume LaforgeGPars et PrettyTime - Paris JUG 2011 - Guillaume Laforge
GPars et PrettyTime - Paris JUG 2011 - Guillaume Laforge
 

Mehr von Franck SIMON

Distribuer une librairie via maven
Distribuer une librairie via mavenDistribuer une librairie via maven
Distribuer une librairie via mavenFranck SIMON
 
Java 8 - interfaces
Java 8 - interfacesJava 8 - interfaces
Java 8 - interfacesFranck SIMON
 
Gwt jetty et sources de données
Gwt   jetty et sources de donnéesGwt   jetty et sources de données
Gwt jetty et sources de donnéesFranck SIMON
 
Description d'un fichier de prélèvements SEPA minimum
Description d'un fichier de prélèvements SEPA minimumDescription d'un fichier de prélèvements SEPA minimum
Description d'un fichier de prélèvements SEPA minimumFranck SIMON
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd trainingFranck SIMON
 
JBoss - chapitre JMX
JBoss - chapitre JMXJBoss - chapitre JMX
JBoss - chapitre JMXFranck SIMON
 
Java - programmation concurrente
Java - programmation concurrenteJava - programmation concurrente
Java - programmation concurrenteFranck SIMON
 
Android Input Method Editor
Android   Input Method EditorAndroid   Input Method Editor
Android Input Method EditorFranck SIMON
 
Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuéesFranck SIMON
 
Développement Android
Développement AndroidDéveloppement Android
Développement AndroidFranck SIMON
 
Java scripting api
Java scripting apiJava scripting api
Java scripting apiFranck SIMON
 

Mehr von Franck SIMON (16)

Distribuer une librairie via maven
Distribuer une librairie via mavenDistribuer une librairie via maven
Distribuer une librairie via maven
 
Java 9 modules
Java 9    modulesJava 9    modules
Java 9 modules
 
Java 8 - lambda
Java 8 - lambdaJava 8 - lambda
Java 8 - lambda
 
Java 8 - interfaces
Java 8 - interfacesJava 8 - interfaces
Java 8 - interfaces
 
Gwt jetty et sources de données
Gwt   jetty et sources de donnéesGwt   jetty et sources de données
Gwt jetty et sources de données
 
Description d'un fichier de prélèvements SEPA minimum
Description d'un fichier de prélèvements SEPA minimumDescription d'un fichier de prélèvements SEPA minimum
Description d'un fichier de prélèvements SEPA minimum
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd training
 
JBoss - chapitre JMX
JBoss - chapitre JMXJBoss - chapitre JMX
JBoss - chapitre JMX
 
Java - programmation concurrente
Java - programmation concurrenteJava - programmation concurrente
Java - programmation concurrente
 
Android Input Method Editor
Android   Input Method EditorAndroid   Input Method Editor
Android Input Method Editor
 
Squid
SquidSquid
Squid
 
Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuées
 
Android NDK
Android   NDKAndroid   NDK
Android NDK
 
Développement Android
Développement AndroidDéveloppement Android
Développement Android
 
jQuery
jQueryjQuery
jQuery
 
Java scripting api
Java scripting apiJava scripting api
Java scripting api
 

Kürzlich hochgeladen

Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdftrendingv83
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesUnidad de Espiritualidad Eudista
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 

Kürzlich hochgeladen (16)

Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 

Java 8 - DateTime

  • 2. antislashn.org Java 8 - Date Time API 2 / 15 Présentation ● Java 8 améliore nettement la manipulation des dates ● Date-Time API - JSR 310 – issu du projet Joda-Time ● package java.time ● cf. http://docs.oracle.com/javase/tutorial/datetime/iso/index.html ● possibilités – analyse et formatage de dates – calcul sur les dates – gestion des dates au format ISO
  • 3. antislashn.org Java 8 - Date Time API 3 / 15 Présentation ● Thread safety ● les classes Date et Calendar ne sont pas thread safe ● les objets de l'API Date-Time sont immuables ● API simple à comprendre ● les classes Date et Calendar sont complexes à utiliser pour effectuer des calculs sur les dates ● cette nouvelle API est constituée de date, d'heure, de durée et de période. ● gestion des fuseaux horaires
  • 4. antislashn.org Java 8 - Date Time API 4 / 15 Présentation ● Classes de base ● LocalDate ● LocalTime ● LocalDateTime ● comme le préfixe l'indique, elles représentent un jour ou une heure depuis le contexte d'exécution ● ces classes sont habituellement utilisées lorsque le fuseau horaire n'a pas besoin d'être précisé
  • 5. antislashn.org Java 8 - Date Time API 5 / 15 LocalDate ● Représente une date au format yyy-MM-dd ● norme ISO-8601 ● nombreuses possibilités pour créer une date ● méthodes statiques – now(), of(), ofEpochDay(),ofYearDay(),parse() LocalDate date1 = LocalDate.now(); LocalDate date2 = LocalDate.of(2019, 1, 1); LocalDate date3 = LocalDate.parse("2019-01-01"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyy"); LocalDate date4 = LocalDate.parse("01/01/2019",formatter);
  • 6. antislashn.org Java 8 - Date Time API 6 / 15 LocalDate ● Plusieurs méthodes pour exécuter des calculs sur les dates ● plus(), plusDay(), plusMonth(), plusWeek(),plusYear() ● minus(), minusDay(), minusMonth(), minusWeek(), minusYear() ● Des comparaisons ● isLeapYear(), isAfter(), isBefore() LocalDate date5 = date2.plusDays(1); LocalDate date6 = date2.plusMonths(2); LocalDate date7 = date2.minus(3, ChronoUnit.DAYS);
  • 7. antislashn.org Java 8 - Date Time API 7 / 15 LocaleDate ● Méthodes utilitaires ● retournant le jour, le mois, l'année, l'ère – get(TemporalField) – getDayOfWeek(), getDayOfMonth(), getDayOfYear() – getMonth(), getMonthValue() – getYear() – getEra() System.out.println(date2.getDayOfMonth()); System.out.println(date2.getMonth().toString());
  • 8. antislashn.org Java 8 - Date Time API 8 / 15 LocaleTime ● Représente une heure ● format hh:mm:ss ● norme ISO-8601 ● fonctionnement équivalent à LocaleDate ● méthodes statiques de création ● méthodes de calcul et de comparaison
  • 9. antislashn.org Java 8 - Date Time API 9 / 15 LocalDateTime ● Représente une combinaison de le date et de l'heure ● format yyy-MM-ddThh:mm:ss ● norme ISO-8601 ● fonctionnement équivalent à LocaleDate ● méthodes statiques de création ● méthodes de calcul et de comparaison
  • 10. antislashn.org Java 8 - Date Time API 10 / 15 Autres classes ● Period ● classe utilitaire permettant de manipuler plus simplement les dates ● il est aisé de récupérer une période entre deux dates LocalDate date7 = date2.minus(Period.ofDays(6)); long nbJours = ChronoUnit.DAYS.between(date2, date7);
  • 11. antislashn.org Java 8 - Date Time API 11 / 15 Autres classes ● Duration ● classe utilitaire permettant de manipuler plus simplement les heures ● il est aisé de récupérer une durée entre deux heures LocalTime initialTime = LocalTime.of(6, 30, 0); LocalTime finalTime = initialTime.plus(Duration.ofSeconds(30)); long nbSecondes = Duration.between(finalTime, initialTime).getSeconds();
  • 12. antislashn.org Java 8 - Date Time API 12 / 15 Compatibilité ● Java 8 ajoute la méthode toInstant() aux classes Date et Calendar pour faciliter le passage à l'API Date Time LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()); LocalDateTime.ofInstant(calendar.toInstant(), ZoneId.systemDefault());
  • 13. antislashn.org Java 8 - Date Time API 13 / 15 Formatage ● La classe DateTimeFormatter permet de créer de nombreuses options de formatage ● localisation ● formats personnalisés DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyy"); LocalDate date4 = LocalDate.parse("01/01/2019",formatter);
  • 14. antislashn.org Java 8 - Date Time API 14 / 15 Formatage ● Attention ● utiliser le bon formatter en fonction de la classe – ofLocalizedDate() – ofLocalisedTime() – ofLocalizedDateTime() ● l'utilisation de FormatStyle.FULL ou FormatStyle.LONG peut produire une exception – c'est deux formats peuvent avoir besoin de la partie Time ● cf. https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
  • 15. antislashn.org Java 8 - Date Time API 15 / 15 Ressources ● https://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html ● https://www.baeldung.com/java-8-date-time-intro ● https://blog.ippon.fr/2014/03/19/java-8-gestion-du-temps/ ● https://stackoverrun.com/fr/q/12685455