Maison  >  Article  >  Java  >  Comment gérer la date et l'heure à l'aide de l'API datetime en Java ?

Comment gérer la date et l'heure à l'aide de l'API datetime en Java ?

PHPz
PHPzoriginal
2023-08-02 22:10:48766parcourir

Comment gérer la date et l'heure à l'aide de l'API datetime en Java ?

Citation :
Dans le développement de logiciels, gérer la date et l'heure est un besoin très courant. Java fournit une API de date et d'heure puissante et facile à utiliser qui nous permet de manipuler facilement les données de date et d'heure. Dans cet article, nous expliquerons comment utiliser l'API DateTime en Java, ainsi que quelques scénarios courants et des exemples de code.

1. Classes de date et d'heure en Java

Java fournit plusieurs classes de date et d'heure, les plus couramment utilisées sont java.util.Date et java.util.Calendar. Cependant, ces classes rencontrent quelques problèmes en ce qui concerne les dates et les heures. Par conséquent, à partir de Java 8, Java a introduit une nouvelle API de date et d'heure, située dans le package java.time, pour remplacer l'ancienne API.

Voici quelques classes de date et d'heure couramment utilisées :

  1. LocalDate : représente une date, qui contient uniquement la partie date et ne contient pas d'informations sur l'heure et le fuseau horaire.
  2. LocalTime : représente une heure, qui contient uniquement la partie heure et ne contient pas d'informations sur la date et le fuseau horaire.
  3. LocalDateTime : représente la date et l'heure, n'inclut pas les informations de fuseau horaire.
  4. ZonedDateTime : représente la date et l'heure avec les informations de fuseau horaire.
  5. Durée : indique la période. Il peut représenter une période de temps en jours, heures, minutes, secondes ou même millisecondes.
  6. Période : représente l'intervalle de dates. Exprimé en années, mois et jours.

Les classes ci-dessus fournissent de nombreuses méthodes pour exploiter les données de date et d'heure, qui sont très flexibles et faciles à utiliser.

2. Création et acquisition de la date et de l'heure

  1. Création de la date et de l'heure :

Créer des objets date et heure à l'aide des classes du package java.time est très simple, il suffit d'appeler la méthode statique correspondante. Par exemple, pour créer un objet LocalDate représentant la date actuelle, vous pouvez utiliser la méthode LocalDate.now() :

LocalDate currentDate = LocalDate.now();

  1. Obtenir les différentes parties de la date et de l'heure :

Nous pouvons utiliser la classe datetime Fournit des méthodes pour obtenir différentes parties d'une date et d'une heure. Voici quelques exemples courants :

// Obtenez l'année
int year = currentDate.getYear();

// Obtenez le mois
Month Month = currentDate.getMonth();
int MonthValue = currentDate.getMonthValue();

// Obtenez la date
int dayOfMonth = currentDate.getDayOfMonth();

// Obtenez le jour de la semaine
DayOfWeek dayOfWeek = currentDate.getDayOfWeek();

// Obtenez le jour de l'année
int dayOfYear = currentDate.getDayOfYear ();

// Obtenez l'heure actuelle
LocalTime currentTime = LocalTime.now();

// Obtenez l'heure
int hour = currentTime.getHour();

// Obtenez la minute
int minute = currentTime.getMinute( );

//Obtenir la seconde
int second = currentTime.getSecond();

...

Ce qui précède est un exemple de la façon de créer un objet datetime et d'obtenir ses différentes parties .

3. Formatage et analyse de la date et de l'heure

Dans le développement réel, nous devons généralement convertir les objets date et heure en chaînes lisibles, ou convertir les chaînes en objets date et heure. Java fournit des méthodes de formatage et d'analyse de la date et de l'heure.

  1. Formatage de la date et de l'heure :

Nous pouvons utiliser la classe DateTimeFormatter pour formater l'objet date/heure dans une chaîne spécifiée. Voici un exemple :

LocalDateTime currentDateTime = LocalDateTime.now();

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("aaaa-MM-jj HH:mm:ss");

System.out.println("Date et heure actuelles : " + formattedDateTime);

L'exécution du code ci-dessus affichera la date et l'heure actuelles au format "aaaa-MM-jj HH:mm:ss".

    Analyse date/heure :
Nous pouvons utiliser la classe DateTimeFormatter pour analyser une chaîne dans un objet date/heure. Voici un exemple :

String dateTimeString = "2022-01-01 12:00:00";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("aaaa-MM-jj HH:mm:ss"); LocalDateTime.parse(dateTimeString, formatter);


System.out.println("Date et heure analysées : " + parsedDateTime);

Exécutez le code ci-dessus et l'objet date et heure analysé sera affiché.

4. Calcul et fonctionnement de la date et de l'heure

L'API Java Date and Time fournit de nombreuses méthodes pour calculer et utiliser la date et l'heure. Voici quelques exemples courants :

Augmenter ou diminuer une date/heure :
  1. LocalDateTime futureDateTime = currentDateTime.plusDays(1); // Ajouter un jour
LocalDateTime pastDateTime = currentDateTime.minusWeeks(1);


Comparez la date et l'heure :
  1. int result = currentDate1.compareTo(currentDate2); // Comparez la séquence de deux dates est 0 pour l'égalité, inférieure à 0 pour avant et supérieure à 0 pour après.

boolean isBefore = currentDate1. isBefore(currentDate2); // Détermine si une date est antérieure à une autre date

boolean isAfter = currentDate1.isAfter(currentDate2); // Détermine si une date est postérieure à une autre date


Détermine l'année bissextile :
  1. boolean isLeapYear = Year.of(2020).isLeap(); // Détermine si l'année spécifiée est une année bissextile
  1. Calculez le nombre de jours entre deux dates :

long daysBetween = ChronoUnit.DAYS.between(startDate, endDate); // Calculez le nombre de jours entre deux dates

L'exemple ci-dessus montre comment effectuer la date et l'heure calculs et opérations.

Conclusion :

Cet article explique comment gérer les dates et les heures à l'aide de l'API DateTime en Java. En utilisant la nouvelle API DateTime, nous pouvons plus facilement créer, obtenir, formater, analyser, calculer et manipuler des dates-heures. Ces API fournissent une multitude de méthodes pour répondre à nos différents besoins en développement réel.

Exemple de code :

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
import java.time.DayOfWeek;

classe publique DateHeureExemple {

public static void main(String[] args) {
    // 创建日期对象
    LocalDate currentDate = LocalDate.now();
    
    // 创建时间对象
    LocalTime currentTime = LocalTime.now();
    
    // 创建日期时间对象
    LocalDateTime currentDateTime = LocalDateTime.now();
    
    // 获取日期时间的各个部分
    int year = currentDate.getYear();
    Month month = currentDate.getMonth();
    int monthValue = currentDate.getMonthValue();
    int dayOfMonth = currentDate.getDayOfMonth();
    DayOfWeek dayOfWeek = currentDate.getDayOfWeek();
    int dayOfYear = currentDate.getDayOfYear();
    int hour = currentTime.getHour();
    int minute = currentTime.getMinute();
    int second = currentTime.getSecond();
    
    // 格式化日期时间
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    String formattedDateTime = currentDateTime.format(formatter);
    
    // 解析日期时间
    String dateTimeString = "2022-01-01 12:00:00";
    LocalDateTime parsedDateTime = LocalDateTime.parse(dateTimeString, formatter);
    
    // 增加或减少日期时间
    LocalDateTime futureDateTime = currentDateTime.plusDays(1);
    LocalDateTime pastDateTime = currentDateTime.minusWeeks(1);
    
    // 比较日期时间
    int result = currentDate1.compareTo(currentDate2);
    boolean isBefore = currentDate1.isBefore(currentDate2);
    boolean isAfter = currentDate1.isAfter(currentDate2);
    
    // 判断闰年
    boolean isLeapYear = Year.of(2020).isLeap();
    
    // 计算两个日期之间的天数
    long daysBetween = ChronoUnit.DAYS.between(startDate, endDate);
    
    // 输出日期时间
    System.out.println("当前日期:" + currentDate);
    System.out.println("当前时间:" + currentTime);
    System.out.println("当前日期时间:" + currentDateTime);
    System.out.println("当前日期时间(格式化后):" + formattedDateTime);
    System.out.println("解析后的日期时间:" + parsedDateTime);
    System.out.println("增加后的日期时间:" + futureDateTime);
    System.out.println("减少后的日期时间:" + pastDateTime);
    System.out.println("日期比较结果:" + result);
    System.out.println("日期是否在另一个日期之前:" + isBefore);
    System.out.println("日期是否在另一个日期之后:" + isAfter);
    System.out.println("闰年判断结果:" + isLeapYear);
    System.out.println("两个日期之间的天数:" + daysBetween);
}

}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn