Maison  >  Article  >  Java  >  Utilisez les nouvelles classes OffsetDateTime et ZoneOffset dans Java 11 pour gérer les dates et les heures avec des décalages

Utilisez les nouvelles classes OffsetDateTime et ZoneOffset dans Java 11 pour gérer les dates et les heures avec des décalages

王林
王林original
2023-07-31 18:17:301029parcourir

Utilisez les nouvelles classes OffsetDateTime et ZoneOffset dans Java 11 pour gérer les dates et les heures avec des décalages

Citation :
Java 11 introduit les nouvelles classes OffsetDateTime et ZoneOffset pour gérer les dates et les heures avec des décalages de fuseau horaire. Ces classes offrent plus de flexibilité et de fonctionnalités, permettant aux développeurs de mieux gérer les dates et heures dans différents fuseaux horaires.

  1. Introduction à la classe OffsetDateTime
    La classe OffsetDateTime fait partie de l'API de date et d'heure introduite dans Java 8. Elle représente une date et une heure avec un décalage de fuseau horaire. Il contient des informations sur la date, l'heure et le décalage horaire. La classe OffsetDateTime est immuable et des instances peuvent être créées via la méthode d'usine statique de(), par exemple :
OffsetDateTime offsetDateTime = OffsetDateTime.of(2022, 1, 1, 12, 0, 0, 0, ZoneOffset.ofHours(8));

Dans le code ci-dessus, nous créons une instance OffsetDateTime représentant 12:00:00 le 1er janvier 2022 et spécifions un décalage horaire de +8 heures.

La classe OffsetDateTime fournit une série de méthodes pour obtenir et manipuler différentes parties du décalage de date, d'heure et de fuseau horaire. Par exemple, nous pouvons utiliser getYear(), getMonth(), getDayOfMonth() et d'autres méthodes pour obtenir l'année, le mois et le jour de la date :

int year = offsetDateTime.getYear();
Month month = offsetDateTime.getMonth();
int dayOfMonth = offsetDateTime.getDayOfMonth();
  1. Introduction à la classe ZoneOffset
    La classe ZoneOffset fait partie de la date et l'API temporelle introduite dans Java 8, qui représente un décalage de fuseau horaire, exprimé en intervalles de temps fixes. Le décalage est relatif au temps universel coordonné (UTC) et est mesuré en heures. La classe ZoneOffset est immuable et des instances peuvent être créées via les méthodes d'usine statique ofHours() ou ofTotalSeconds(), par exemple :
ZoneOffset zoneOffset = ZoneOffset.ofHours(8);
ZoneOffset zoneOffset = ZoneOffset.ofTotalSeconds(28800);

Dans le code ci-dessus, nous avons créé un décalage de fuseau horaire de +8 heures et +28800 respectivement Instance ZoneOffset du décalage de fuseau horaire en secondes.

La classe ZoneOffset fournit une série de méthodes pour obtenir et manipuler différentes parties du décalage. Par exemple, nous pouvons utiliser la méthode getTotalSeconds() pour obtenir le nombre total de secondes du décalage :

int totalSeconds = zoneOffset.getTotalSeconds();
  1. Exemple de code
    Vous trouverez ci-dessous un exemple de code qui montre comment utiliser la classe OffsetDateTime et la classe ZoneOffset pour gérer les dates avec fuseau horaire. offsets Et time :
import java.time.OffsetDateTime;
import java.time.Month;
import java.time.ZoneOffset;

public class DateTimeExample {
    public static void main(String[] args) {
        OffsetDateTime offsetDateTime = OffsetDateTime.of(2022, 1, 1, 12, 0, 0, 0, ZoneOffset.ofHours(8));
        
        int year = offsetDateTime.getYear();
        Month month = offsetDateTime.getMonth();
        int dayOfMonth = offsetDateTime.getDayOfMonth();
        int hour = offsetDateTime.getHour();
        int minute = offsetDateTime.getMinute();
        int second = offsetDateTime.getSecond();
        
        System.out.println("Year: " + year);
        System.out.println("Month: " + month);
        System.out.println("Day of Month: " + dayOfMonth);
        System.out.println("Hour: " + hour);
        System.out.println("Minute: " + minute);
        System.out.println("Second: " + second);
        
        ZoneOffset zoneOffset = ZoneOffset.ofHours(8);
        int totalSeconds = zoneOffset.getTotalSeconds();
        
        System.out.println("Total Seconds: " + totalSeconds);
    }
}

Résultat de sortie :

Year: 2022
Month: JANUARY
Day of Month: 1
Hour: 12
Minute: 0
Second: 0
Total Seconds: 28800

Dans l'exemple de code ci-dessus, nous avons d'abord créé une instance OffsetDateTime représentant 12:00:00 le 1er janvier 2022, et obtenu les différentes parties (année, mois, jour, heure, minute, seconde). Nous avons ensuite créé une instance ZoneOffset représentant le décalage horaire de +8 heures et obtenu le nombre total de secondes du décalage.

Conclusion :
En utilisant les classes OffsetDateTime et ZoneOffset dans Java 11, nous pouvons mieux gérer les dates et les heures avec les décalages de fuseau horaire. Ces classes fournissent un riche ensemble de fonctions et de méthodes qui permettent aux développeurs d'obtenir et de manipuler facilement différentes parties des dates, des heures et des décalages de fuseau horaire. Les développeurs peuvent utiliser ces classes pour gérer les dates et les heures dans différents fuseaux horaires en fonction des besoins réels, améliorant ainsi la lisibilité et la maintenabilité du code.

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