Les dates en Java 8 : API Date/Time

Introduction

L’API date/time est un sujet très détaillé et important en Java. En particulier pour les applications dont les utilisateurs se trouvent à différents endroits, il est très important d’utiliser cette API de manière efficace et d’effectuer les opérations de conversion correctement.
Dans cet article, nous allons examiner les classes et les fonctionnalités qui ont été introduites dans Java 8 et examiner quelques exemples.

Java 8 – API DATE TIME

1 – java.time.LocalDate

La classe LocalDate conserve les informations de date de l’emplacement. Cette classe ne doit pas être confondue avec la classe Date du paquet java.util.Date.
Les objets créés à partir de la classe Date contiennent des informations sur la date et l’heure, tandis que les objets créés à partir de la classe LocalDate ne contiennent que des informations sur la date.

La classe a un constructeur privé, donc pour créer une instance, il faut utiliser LocalDate.now() ou LocalDate.of() avec différents paramètres.

public class TestDate {
    public static void main(String[] args) {
        Date date = new Date();
        LocalDate localDate = LocalDate.now();
        System.out.println(date);
        System.out.println(localDate);
    }
}

Date affiche : Thu Jun 17 19:58:18 CEST 2021
LocalDate affiche : 2021-06-17

Comme vous pouvez le constater, LocalDate ne contient que les informations relatives à la date, tandis que Date contient également d’autres informations supplémentaires.

Avec LocalDate.now(), nous pouvons créer une instance LocalDate avec les informations de la date actuelle du système. Nous pouvons également créer une instance LocalDate avec des informations de date spécifiques en donnant des paramètres à la méthode statique LocalDate.of() :

LocalDate localDateNow = LocalDate.now();
LocalDate localDateOf = LocalDate.of(2010, 2, 15);
LocalDate localDateOf2 = LocalDate.of(2034, Month.DECEMBER, 25);
System.out.println(localDateNow); // Output : 2021-06-17
System.out.println(localDateOf);  // Output : 2010-02-15
System.out.println(localDateOf2); // Output : 2034-12-25

Il est possible de créer une instance à partir d’une valeur String avec la méthode LocalDate.parse().

De même, nous pouvons ajouter des jours, des mois ou des années en utilisant les méthodes plus ou moins. Mais n’oubliez pas que la classe LocalDate est immuable, vous devez donc réaffecter la nouvelle valeur à votre variable :

LocalDate localDateParse = LocalDate.parse("2021-06-17");
localDateParse = localDateParse.plusDays(2).minusYears(3);
System.out.println(localDateParse); // Output : 2018-06-19

 

2 – java.time.LocalTime

Cette classe ne contient que des informations temporelles (heures-minutes-secondes).
La manière de créer une instance est similaire à celle de la classe LocalDate. Elle possède également des méthodes similaires telles que les méthodes parse et plus.

LocalTime localTimeNow = LocalTime.now();
LocalTime localTimeOf = LocalTime.of(20,25,10);
localTimeOf = localTimeOf.plusMinutes(10).minusHours(3);
LocalTime localTimeParsed = LocalTime.parse("20:25");
System.out.println(localTimeNow);     // Output : 20:25:41.739
System.out.println(localTimeOf);      // Output : 17:35:10
System.out.println(localTimeParsed);  // Output : 20:25

 

3 – java.time.LocalDateTime

LocalDateTime stocke les informations de LocalDate et de LocalTime et possède des méthodes similaires à now() et parse().
Mais la méthode LocalDateTime.of() peut également prendre en paramètre des instances LocalDate et LocalTime, ce qui vous permet de créer une nouvelle instance en les utilisant également :

LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTimeNow =LocalDateTime.of(localDate,localTime);
LocalDateTime localDateTimeSpecific =LocalDateTime.of(2021,Month.JUNE,6,20,29,22);
System.out.println(localDateTimeNow);      // Output : 2021-06-17T20:29:39.984
System.out.println(localDateTimeSpecific); // Output : 2021-06-06T20:29:22

 

4 – java.tome.ZoneId

Il peut y avoir des différences de date et d’heure entre les lieux. Pour cette raison, il peut être nécessaire de spécifier les informations de zone de l’emplacement tout en calculant les heures dans différents emplacements.

Zone Date

ZoneId nous aide à obtenir les informations sur la zone de l’emplacement souhaité. Il est possible d’obtenir l’identifiant de zone du système en utilisant la méthode ZoneId.systemDefault() :

Set<String> zoneIdAvailable = ZoneId.getAvailableZoneIds();
System.out.println(zoneIdAvailable); // Output : [Asia/Aden, America/Cuiaba, Etc/GMT+9, Etc/GMT+8, Africa/Nairobi, America/Marigot, Asia/Aqtau, Pacific/Kwajalein, America/El_Salvador, Asia/Pontianak, Africa/Cairo, Pacific/Pago_Pago, Africa/Mbabane, Asia/Kuching, Pacific/Honolulu, Pacific/Rarotonga, America/Guatemala, Australia/Hobart, Europe/London, America/Belize, America/Panama, Asia/Chungking, America/Managua, America/Indiana/Petersburg, Asia/Yerevan, Europe/Brussels, GMT, Europe/Warsaw, America/Chicago, Asia/Kashgar, Chile/Continental, Pacific/Yap, CET, Etc/GMT-1, Etc/GMT-0, Europe/Jersey, America/Tegucigalpa, Etc/GMT-5, Europe/Istanbul, America/Eirunepe, Etc/GMT-4, America/Miquelon, Etc/GMT-3, Europe/Luxembourg, Etc/GMT-2, Etc/GMT-9, America/Argentina/Catamarca, Etc/GMT-8, Etc/GMT-7, Etc/GMT-6, Europe/Zaporozhye, Canada/Yukon, Canada/Atlantic, Atlantic/St_Helena, Australia/Tasmania, Libya, Europe/Guernsey, America/Grand_Turk, Asia/Samarkand, America/Argentina/Cordoba, Asia/Phnom_Penh, Africa/Kigali, Asia/Almaty, US/Alaska, Asia/Dubai, Europe/Isle_of_Man, America/Araguaina, Cuba, Asia/Novosibirsk, America/Argentina/Salta, Etc/GMT+3, Africa/Tunis, Etc/GMT+2, Etc/GMT+1, Pacific/Fakaofo, Africa/Tripoli, Etc/GMT+0, Israel, Africa/Banjul, Etc/GMT+7, Indian/Comoro, Etc/GMT+6, Etc/GMT+5, Etc/GMT+4, Pacific/Port_Moresby, US/Arizona, Antarctica/Syowa, Indian/Reunion, Pacific/Palau, Europe/Kaliningrad, America/Montevideo, Africa/Windhoek, Asia/Karachi, Africa/Mogadishu, Australia/Perth, Brazil/East, Etc/GMT, Asia/Chita, Pacific/Easter, Antarctica/Davis, Antarctica/McMurdo, Asia/Macao, America/Manaus, Africa/Freetown, Europe/Bucharest, Asia/Tomsk, America/Argentina/Mendoza, Asia/Macau, Europe/Malta, Mexico/BajaSur, Pacific/Tahiti, Africa/Asmera, Europe/Busingen, America/Argentina/Rio_Gallegos, Africa/Malabo, Europe/Skopje, America/Catamarca, America/Godthab, Europe/Sarajevo, Australia/ACT, GB-Eire, Africa/Lagos, America/Cordoba, Europe/Rome, Asia/Dacca, Indian/Mauritius, Pacific/Samoa, America/Regina, America/Fort_Wayne, America/Dawson_Creek, Africa/Algiers, Europe/Mariehamn, America/St_Johns, America/St_Thomas, Europe/Zurich, America/Anguilla, Asia/Dili, America/Denver, Africa/Bamako, Europe/Saratov, GB, Mexico/General, Pacific/Wallis, Europe/Gibraltar, Africa/Conakry, Africa/Lubumbashi, Asia/Istanbul, America/Havana, NZ-CHAT, Asia/Choibalsan, America/Porto_Acre, Asia/Omsk, Europe/Vaduz, US/Michigan, Asia/Dhaka, America/Barbados, Europe/Tiraspol, Atlantic/Cape_Verde, Asia/Yekaterinburg, America/Louisville, Pacific/Johnston, Pacific/Chatham, Europe/Ljubljana, America/Sao_Paulo, Asia/Jayapura, America/Curacao, Asia/Dushanbe, America/Guyana, America/Guayaquil, America/Martinique, Portugal, Europe/Berlin, Europe/Moscow, Europe/Chisinau, America/Puerto_Rico, America/Rankin_Inlet, Pacific/Ponape, Europe/Stockholm, Europe/Budapest, America/Argentina/Jujuy, Australia/Eucla, Asia/Shanghai, Universal, Europe/Zagreb, America/Port_of_Spain, Europe/Helsinki, Asia/Beirut, Asia/Tel_Aviv, Pacific/Bougainville, US/Central, Africa/Sao_Tome, Indian/Chagos, America/Cayenne, Asia/Yakutsk, Pacific/Galapagos, Australia/North, Europe/Paris, Africa/Ndjamena, Pacific/Fiji, America/Rainy_River, Indian/Maldives, Australia/Yancowinna, SystemV/AST4, Asia/Oral, America/Yellowknife, Pacific/Enderbury, America/Juneau, Australia/Victoria, America/Indiana/Vevay, Asia/Tashkent, Asia/Jakarta, Africa/Ceuta, Asia/Barnaul, America/Recife, America/Buenos_Aires, America/Noronha, America/Swift_Current, Australia/Adelaide, America/Metlakatla, Africa/Djibouti, America/Paramaribo, Asia/Qostanay, Europe/Simferopol, Europe/Sofia, Africa/Nouakchott, Europe/Prague, America/Indiana/Vincennes, Antarctica/Mawson, America/Kralendijk, Antarctica/Troll, Europe/Samara, Indian/Christmas, America/Antigua, Pacific/Gambier, America/Indianapolis, America/Inuvik, America/Iqaluit, Pacific/Funafuti, UTC, Antarctica/Macquarie, Canada/Pacific, America/Moncton, Africa/Gaborone, Pacific/Chuuk, Asia/Pyongyang, America/St_Vincent, Asia/Gaza, Etc/Universal, PST8PDT, Atlantic/Faeroe, Asia/Qyzylorda, Canada/Newfoundland, America/Kentucky/Louisville, America/Yakutat, Asia/Ho_Chi_Minh, Antarctica/Casey, Europe/Copenhagen, Africa/Asmara, Atlantic/Azores, Europe/Vienna, ROK, Pacific/Pitcairn, America/Mazatlan, Australia/Queensland, Pacific/Nauru, Europe/Tirane, Asia/Kolkata, SystemV/MST7, Australia/Canberra, MET, Australia/Broken_Hill, Europe/Riga, America/Dominica, Africa/Abidjan, America/Mendoza, America/Santarem, Kwajalein, America/Asuncion, Asia/Ulan_Bator, NZ, America/Boise, Australia/Currie, EST5EDT, Pacific/Guam, Pacific/Wake, Atlantic/Bermuda, America/Costa_Rica, America/Dawson, Asia/Chongqing, Eire, Europe/Amsterdam, America/Indiana/Knox, America/North_Dakota/Beulah, Africa/Accra, Atlantic/Faroe, Mexico/BajaNorte, America/Maceio, Etc/UCT, Pacific/Apia, GMT0, America/Atka, Pacific/Niue, Australia/Lord_Howe, Europe/Dublin, Pacific/Truk, MST7MDT, America/Monterrey, America/Nassau, America/Jamaica, Asia/Bishkek, America/Atikokan, Atlantic/Stanley, Australia/NSW, US/Hawaii, SystemV/CST6, Indian/Mahe, Asia/Aqtobe, America/Sitka, Asia/Vladivostok, Africa/Libreville, Africa/Maputo, Zulu, America/Kentucky/Monticello, Africa/El_Aaiun, Africa/Ouagadougou, America/Coral_Harbour, Pacific/Marquesas, Brazil/West, America/Aruba, America/North_Dakota/Center, America/Cayman, Asia/Ulaanbaatar, Asia/Baghdad, Europe/San_Marino, America/Indiana/Tell_City, America/Tijuana, Pacific/Saipan, SystemV/YST9, Africa/Douala, America/Chihuahua, America/Ojinaga, Asia/Hovd, America/Anchorage, Chile/EasterIsland, America/Halifax, Antarctica/Rothera, America/Indiana/Indianapolis, US/Mountain, Asia/Damascus, America/Argentina/San_Luis, America/Santiago, Asia/Baku, America/Argentina/Ushuaia, Atlantic/Reykjavik, Africa/Brazzaville, Africa/Porto-Novo, America/La_Paz, Antarctica/DumontDUrville, Asia/Taipei, Antarctica/South_Pole, Asia/Manila, Asia/Bangkok, Africa/Dar_es_Salaam, Poland, Atlantic/Madeira, Antarctica/Palmer, America/Thunder_Bay, Africa/Addis_Ababa, Asia/Yangon, Europe/Uzhgorod, Brazil/DeNoronha, Asia/Ashkhabad, Etc/Zulu, America/Indiana/Marengo, America/Creston, America/Punta_Arenas, America/Mexico_City, Antarctica/Vostok, Asia/Jerusalem, Europe/Andorra, US/Samoa, PRC, Asia/Vientiane, Pacific/Kiritimati, America/Matamoros, America/Blanc-Sablon, Asia/Riyadh, Iceland, Pacific/Pohnpei, Asia/Ujung_Pandang, Atlantic/South_Georgia, Europe/Lisbon, Asia/Harbin, Europe/Oslo, Asia/Novokuznetsk, CST6CDT, Atlantic/Canary, America/Knox_IN, Asia/Kuwait, SystemV/HST10, Pacific/Efate, Africa/Lome, America/Bogota, America/Menominee, America/Adak, Pacific/Norfolk, Europe/Kirov, America/Resolute, Pacific/Tarawa, Africa/Kampala, Asia/Krasnoyarsk, Greenwich, SystemV/EST5, America/Edmonton, Europe/Podgorica, Australia/South, Canada/Central, Africa/Bujumbura, America/Santo_Domingo, US/Eastern, Europe/Minsk, Pacific/Auckland, Africa/Casablanca, America/Glace_Bay, Canada/Eastern, Asia/Qatar, Europe/Kiev, Singapore, Asia/Magadan, SystemV/PST8, America/Port-au-Prince, Europe/Belfast, America/St_Barthelemy, Asia/Ashgabat, Africa/Luanda, America/Nipigon, Atlantic/Jan_Mayen, Brazil/Acre, Asia/Muscat, Asia/Bahrain, Europe/Vilnius, America/Fortaleza, Etc/GMT0, US/East-Indiana, America/Hermosillo, America/Cancun, Africa/Maseru, Pacific/Kosrae, Africa/Kinshasa, Asia/Kathmandu, Asia/Seoul, Australia/Sydney, America/Lima, Australia/LHI, America/St_Lucia, Europe/Madrid, America/Bahia_Banderas, America/Montserrat, Asia/Brunei, America/Santa_Isabel, Canada/Mountain, America/Cambridge_Bay, Asia/Colombo, Australia/West, Indian/Antananarivo, Australia/Brisbane, Indian/Mayotte, US/Indiana-Starke, Asia/Urumqi, US/Aleutian, Europe/Volgograd, America/Lower_Princes, America/Vancouver, Africa/Blantyre, America/Rio_Branco, America/Danmarkshavn, America/Detroit, America/Thule, Africa/Lusaka, Asia/Hong_Kong, Iran, America/Argentina/La_Rioja, Africa/Dakar, SystemV/CST6CDT, America/Tortola, America/Porto_Velho, Asia/Sakhalin, Etc/GMT+10, America/Scoresbysund, Asia/Kamchatka, Asia/Thimbu, Africa/Harare, Etc/GMT+12, Etc/GMT+11, Navajo, America/Nome, Europe/Tallinn, Turkey, Africa/Khartoum, Africa/Johannesburg, Africa/Bangui, Europe/Belgrade, Jamaica, Africa/Bissau, Asia/Tehran, WET, Europe/Astrakhan, Africa/Juba, America/Campo_Grande, America/Belem, Etc/Greenwich, Asia/Saigon, America/Ensenada, Pacific/Midway, America/Jujuy, Africa/Timbuktu, America/Bahia, America/Goose_Bay, America/Virgin, America/Pangnirtung, Asia/Katmandu, America/Phoenix, Africa/Niamey, America/Whitehorse, Pacific/Noumea, Asia/Tbilisi, America/Montreal, Asia/Makassar, America/Argentina/San_Juan, Hongkong, UCT, Asia/Nicosia, America/Indiana/Winamac, SystemV/MST7MDT, America/Argentina/ComodRivadavia, America/Boa_Vista, America/Grenada, Asia/Atyrau, Australia/Darwin, Asia/Khandyga, Asia/Kuala_Lumpur, Asia/Famagusta, Asia/Thimphu, Asia/Rangoon, Europe/Bratislava, Asia/Calcutta, America/Argentina/Tucuman, Asia/Kabul, Indian/Cocos, Japan, Pacific/Tongatapu, America/New_York, Etc/GMT-12, Etc/GMT-11, America/Nuuk, Etc/GMT-10, SystemV/YST9YDT, Europe/Ulyanovsk, Etc/GMT-14, Etc/GMT-13, W-SU, America/Merida, EET, America/Rosario, Canada/Saskatchewan, America/St_Kitts, Arctic/Longyearbyen, America/Fort_Nelson, America/Caracas, America/Guadeloupe, Asia/Hebron, Indian/Kerguelen, SystemV/PST8PDT, Africa/Monrovia, Asia/Ust-Nera, Egypt, Asia/Srednekolymsk, America/North_Dakota/New_Salem, Asia/Anadyr, Australia/Melbourne, Asia/Irkutsk, America/Shiprock, America/Winnipeg, Europe/Vatican, Asia/Amman, Etc/UTC, SystemV/AST4ADT, Asia/Tokyo, America/Toronto, Asia/Singapore, Australia/Lindeman, America/Los_Angeles, SystemV/EST5EDT, Pacific/Majuro, America/Argentina/Buenos_Aires, Europe/Nicosia, Pacific/Guadalcanal, Europe/Athens, US/Pacific, Europe/Monaco]
ZoneId zone = ZoneId.systemDefault();
System.out.println(zone); // Output : Europe/Paris

Nous pouvons également voir tous les identifiants de zone possibles dans la classe ZoneId avec la méthode ZoneId.getAvailableZoneIds().
Elle renvoie un ensemble de chaînes comprenant tous les identifiants de zone disponibles :

La méthode LocalDateTime.now() accepte également ZoneId. Ainsi, si vous donnez un ZoneId comme paramètre, vous pouvez obtenir la date et l’heure actuelles dans une zone spécifique :

ZoneId zoneParis = ZoneId.of("Europe/Paris");
LocalDateTime localDateTime = LocalDateTime.now(zoneParis);
System.out.println(localDateTime); // Output : 2021-06-17T20:38:29.912

 

5 – java.time.ZonedDateTime

La classe ZonedDateTime comprend la date, l’heure et l’identifiant de la zone.

Nous pouvons donc penser comme suit :
LocalDateTime inclut la Date Locale + l’Heure Locale
ZonedDateTime comprend LocalDateTime + ZoneId


Nous pouvons obtenir la ZonedDateTime actuelle de notre emplacement en utilisant la méthode ZonedDateTime.now().
Ou nous pouvons l’obtenir en donnant les instances LocalDateTime et ZoneId comme paramètre à la méthode ZonedDateTime.of() :

ZonedDateTime currentLocationZoneTime = ZonedDateTime.now();
System.out.println(currentLocationZoneTime); // 2021-06-17T20:42:54.096+02:00[Europe/Paris]
LocalDateTime localDateTime = LocalDateTime.now();
ZoneId currentLocationZoneId = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, currentLocationZoneId);
System.out.println(zonedDateTime); // Output : 2021-06-17T20:42:54.132+02:00[Europe/Paris]

6 – java.time.Instant

Dans certaines applications, il peut être nécessaire de renvoyer la date et l’heure au format UTC 0 pour garantir la cohérence de la date et de l’heure.

Par exemple, vous avez une application et cette application a de nombreux utilisateurs dans le monde entier. Pour que tous les utilisateurs puissent voir l’heure des événements dans l’application correctement en fonction de l’heure de leur emplacement, vous devrez peut-être stocker l’heure des événements au format UTC 0 et la convertir en fonction de l’identifiant de zone de l’utilisateur lorsqu’elle est affichée à l’utilisateur.

La classe java.time.Instant est utilisée pour convertir la date et l’heure au format UTC 0. Et vous pouvez convertir votre ZonedDateTime en Instant en utilisant la méthode ZonedDateTime.toInstant().
Ou vous pouvez utiliser la méthode Instant.now() pour obtenir la date et l’heure actuelles au format UTC 0 :

Instant instant = Instant.now();
System.out.println(instant); // 2021-06-17T18:46:32.120Z
ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println(zonedDateTime.toInstant()); // Output : 2021-06-17T18:46:32.194Z

7 – java.time.Period

La classe period représente la période spécifique pour LocalDate (Year, Month, Day).
Elle peut être utilisée pour calculer la différence entre les dates.
Vous pouvez également utiliser la méthode LocalDate.plus() ou LocalDate.minus() en donnant une période spécifique (Year, Month, Day) comme paramètre.

LocalDate localDate = LocalDate.of(2020, Month.JUNE, 10);
LocalDate localDateNow = LocalDate.now();
System.out.println(Period.between(localDate, localDateNow)); // Output : P1Y7D

Dans ce cas la : P1Y7D, une année de différence et 7 jours.
Notez qu’elle ne peut pas être utilisée pour LocalTime. Pour faire les mêmes opérations pour LocalTime il y a une autre classe.

8 – java.time.Duration

La classe Duration, comme la classe Period, est utilisée pour spécifier un intervalle de temps spécifique (hours, minutes, seconds).
Nous utilisons cette classe pour le LocalTime :

 

9 – java.time.temporal.ChronoUnit

ChronoUnit est l'”enum” de l’ensemble standard des unités de période de date.
On peut l’utiliser pour manipuler LocalDate, LocalTime, ou LocalDateTime :

LocalTime localTime = LocalTime.of(15, 51);
LocalTime localTimeNow = LocalTime.now();
Duration duration = Duration.between(localTimeNow, localTime);
System.out.println(duration); // Output : PT-5H-1M-41.522S
LocalDate localDateNow = LocalDate.now();
LocalDate nextWeek = localDateNow.plus(1, ChronoUnit.WEEKS);
LocalDate OneYearLater = localDateNow.plus(2,ChronoUnit.YEARS);
System.out.println(localDateNow); // Output : 2021-06-17
System.out.println(nextWeek);     // Output : 2021-06-24
System.out.println(OneYearLater); // Output : 2023-06-17
LocalTime localTime1 = LocalTime.of(20,57);
LocalTime localTime2 = LocalTime.of(13,38);
System.out.println(ChronoUnit.MINUTES.between(localTime1,localTime2)); // Output : -439

Magnifique.

Dans l’exemple ci-dessous, vous pouvez voir la différence en minutes entre ma position et celle de la ville de Denver dans le Colorado, calculée à l’aide de ChronoUnit :

LocalDateTime myLocalDate = LocalDateTime.now();
ZoneId zoneId = ZoneId.of("America/Denver");
LocalDateTime compareLocalDate = LocalDateTime.now(zoneId);
System.out.println(ChronoUnit.MINUTES.between(compareLocalDate,myLocalDate)); // Output : 479

 

10 – java.time.format.DateTimeFormatter

Dans certains cas, vous pouvez ne pas vouloir utiliser le format par défaut pour une heure ou une date spécifique.
Pour cela, la classe DateTimeFormatter fera l’affaire. Il est nécessaire de décrire le format souhaité à la méthode .ofPattern() de la classe DateTimeFormatter avec des paramètres.

Voici un tableau avec quelques modèles courants liées à la date et à l’heure :

DateTimeFormatter

Quelques exemples d’utilisation de DateTimeFormatter :

LocalDate localDate = LocalDate.now();
DateTimeFormatter formatDateTime1 = DateTimeFormatter.ofPattern("dd MM yyyy");
DateTimeFormatter formatDateTime2 = DateTimeFormatter.ofPattern("dd/MM/yyyy");
DateTimeFormatter formatDateTime3 = DateTimeFormatter.ofPattern("EEE-dd/MM/yyyy");
System.out.println(localDate); // Output : 2021-06-17
System.out.println(formatDateTime1.format(localDate));  // Output : 17 06 2021
System.out.println(formatDateTime2.format(localDate)); // Output : 17/06/2021
System.out.println(formatDateTime3.format(localDate)); // Output : jeu.-17/06/2021
LocalTime localTime = LocalTime.now();
DateTimeFormatter dateTimeFormatter3 = DateTimeFormatter.ofPattern("hh--mm--ss");
System.out.println(dateTimeFormatter3.format(localTime)); // Output : 09--07--26

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut
%d blogueurs aiment cette page :