Java 8 gère l'heure et la date avec élégance

table des matières

Une opération de base

1.1 Date de génération

1.2 Temps de génération

1.3 Année de génération

1.4 Mois de génération

1.5 Date de génération

1.6 Lors de la génération

1.7 Généré

1.8 Secondes générées

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();

 

Je suppose que tu aimes

Origine blog.csdn.net/jack1liu/article/details/112742282
conseillé
Classement