table des matières
1.9 Date et heure de la génération
Deux applications quotidiennes
2.1 Conversion entre Instant et Date
2.2 Conversion de LocalDateTime et de date
2.3 Sortie formatée date et heure
2.4 Comparer deux dates ou heures
Ceux qui ont utilisé java.util.Date et java.sql.Date penseront que ces deux packages d'API de date sont conçus pour être trop hostiles et anti-humains. tel que:
- Qu'est-ce que java.util.Date est un type de variable;
- SimpleDateFormatter n'est pas thread-safe;
- Même le mois java.util.Date commence à 0, janvier à 0, décembre à 11 et ainsi de suite.
Afin de résoudre ces problèmes, le package java.time de Java 8. Toutes les classes de ce package sont des types immuables et sont thread-safe.
Vous constaterez peut-être que de nombreuses API de ce package sont similaires à JodaTime, car la conception du package de temps de Java 8 fait référence à la conception de JodaTime.
Dans Java 8,java.time 包如下所示:
Horloge : Horloge, par exemple pour obtenir l'heure actuelle à Pékin, en Chine.
Instantané : horodatage.
Durée : Durée, utilisée pour calculer le décalage horaire.
LocalDate : contient uniquement la date, par exemple: 2021-01-17.
LocalTime : contient uniquement l'heure, par exemple: 14:15:10 .
LocalDateTime : contient la date et l'heure, par exemple: 2021-01-170 14:15:10.
Période : période, utilisée pour calculer le décalage horaire.
ZoneOffset : Décalage du fuseau horaire, par exemple: +8: 00.
ZonedDateTime : heure avec fuseau horaire.
D'autres sont des classes très simples, qui sont plus familières.
Une opération de base
1.1 Date de génération
//当前日期
LocalDate localDate = LocalDate.now();
//指定日期
LocalDate localDate = LocalDate.of(2021, 01, 17);
1.2 Temps de génération
//当前时间
LocalTime localTime1 = LocalTime.now();
//指定时间
LocalTime localTime2= LocalTime.of(15, 11, 15);
1.3 Année de génération
//今年
int now = LocalDate.now().getYear()
//明年
int after = LocalDate.now().plusYears(1).getYear();
//去年
int before = LocalDate.now().minusYears(1).getYear();
1.4 Mois de génération
//这个月
int now = LocalDate.now().getMonthValue()
//下个月
int after = LocalDate.now().plusMonths(1).getMonthValue();
//上个月
int before = LocalDate.now().minusMonths(1).getMonthValue();
1.5 Date de génération
//今天
int now = LocalDate.now().getDayOfMonth();
//明天
int after = LocalDate.now().plusDays(1).getDayOfMonth();
//昨天
int before = LocalDate.now().minusDays(1).getDayOfMonth();
1.6 Lors de la génération
//这个时辰
int now = LocalTime.now().getHour();
//下个时辰
int after = LocalTime.now().plusHours(1).getHour();
//上个时辰
int before = LocalTime.now().minusHours(1).getHour();
1.7 Généré
//这一分钟
int now = LocalTime.now().getMinute();
//下一分钟
int after = LocalTime.now().plusMinutes(1).getMinute();
//上一分钟
int before = LocalTime.now().minusMinutes(1).getMinute();
1.8 Secondes générées
//这一秒
int now = LocalTime.now().getSecond();
//下一秒
int after = LocalTime.now().plusSeconds(1).getSecond();
//上一秒
int before = LocalTime.now().minusSeconds(1).getSecond();
1.9 Date et heure de la génération
LocalDateTime localDateTime = LocalDateTime.now();
Deux applications quotidiennes
2.1 Conversion entre Instant et Date
2.1.1 Date instantanée 转
Instant instant = Instant.now();
Date date = Date.from(instant);
2.1.2 Date 转 Instantanée
Date date = new Date();
Instant instant = date.toInstant();
2.2 Conversion de LocalDateTime et de date
2.2.1 LocalDateTime 转 Date
LocalDateTime localDateTime = LocalDateTime.now();
Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
2.2.2 Date 转 LocalDateTime
Date date = new Date();
LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
2.3 Sortie formatée date et heure
2.3.1 Sortie formatée LocalDateTime
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String string = dateTimeFormatter.format(localDateTime);
2.3.2 Sortie formatée LocalDate
LocalDate data=LocalDate.now();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy:MM:dd");
String string = dateTimeFormatter.format(data);
2.4 Comparer deux dates ou heures
2.4.1 Comparaison avant et après la date
LocalDate today = LocalDate.now();
LocalDate speDay = LocalDate.of(2021,01,18);
boolean isAfter = today.isAfter(speDay);
2.4.2 Comparaison du temps avant et après
LocalTime today = LocalTime.now();
LocalTime speDay = LocalTime.of(15,01,18);
boolean isAfter = today.isAfter(speDay);
2.4.3 Comparaison LocalDateTime
LocalDateTime begin = LocalDateTime.of(2021,01, 17, 15, 13, 14);
LocalDateTime end = LocalDateTime.of(2021,01, 18, 15, 13, 14);
Duration duration = Duration.between(begin, end);
long days = duration.toDays();
long hours = duration.toHours();
long minutes = duration.toMinutes();
//。。。。。。
2.4.4 Comparaison LocalDate
LocalDate begin = LocalDate.of(2021,01, 17);
LocalDate end = LocalDate.of(2021,01, 18);
Period period = Period.between(begin, end);
int months = period.getMonths();
int days = period.getDays();