Heim  >  Artikel  >  Java  >  Verwenden Sie die neuen OffsetDateTime-Klassen und ZoneOffset-Klassen in Java 11, um Datums- und Uhrzeitangaben mit Offsets zu verarbeiten

Verwenden Sie die neuen OffsetDateTime-Klassen und ZoneOffset-Klassen in Java 11, um Datums- und Uhrzeitangaben mit Offsets zu verarbeiten

王林
王林Original
2023-07-31 18:17:301054Durchsuche

Verwenden Sie die neue OffsetDateTime-Klasse und die ZoneOffset-Klasse in Java 11, um Datums- und Uhrzeitangaben mit Offsets zu verarbeiten.

Zitat:
Java 11 führt die neue OffsetDateTime-Klasse und die ZoneOffset-Klasse ein, um Datums- und Uhrzeitangaben mit Zeitzonenoffsets zu verarbeiten. Diese Klassen bieten mehr Flexibilität und Funktionalität und ermöglichen Entwicklern einen besseren Umgang mit Datums- und Uhrzeitangaben in verschiedenen Zeitzonen.

  1. Einführung in die OffsetDateTime-Klasse
    Die OffsetDateTime-Klasse ist Teil der in Java 8 eingeführten Datums- und Uhrzeit-API. Sie stellt ein Datum und eine Uhrzeit mit einem Zeitzonenversatz dar. Es enthält Informationen zu Datum, Uhrzeit und Zeitzonenversatz. Die OffsetDateTime-Klasse ist unveränderlich und Instanzen können über die statische Factory-Methode von() erstellt werden, zum Beispiel:
OffsetDateTime offsetDateTime = OffsetDateTime.of(2022, 1, 1, 12, 0, 0, 0, ZoneOffset.ofHours(8));

Im obigen Code erstellen wir eine OffsetDateTime-Instanz, die 12:00:00 Uhr am 1. Januar 2022 darstellt, und geben an ein Zeitzonenversatz von +8 Stunden.

Die OffsetDateTime-Klasse bietet eine Reihe von Methoden zum Abrufen und Bearbeiten verschiedener Teile von Datum, Uhrzeit und Zeitzonenversatz. Beispielsweise können wir getYear(), getMonth(), getDayOfMonth() und andere Methoden verwenden, um Jahr, Monat und Tag des Datums abzurufen:

int year = offsetDateTime.getYear();
Month month = offsetDateTime.getMonth();
int dayOfMonth = offsetDateTime.getDayOfMonth();
  1. Einführung in die ZoneOffset-Klasse
    Die ZoneOffset-Klasse ist Teil des Datums und die in Java 8 eingeführte Zeit-API, die einen Zeitzonenversatz darstellt, ausgedrückt in festen Zeitintervallen. Der Offset ist relativ zur koordinierten Weltzeit (UTC) und wird in Stunden gemessen. Die ZoneOffset-Klasse ist unveränderlich und Instanzen können über die statischen Factory-Methoden ofHours() oder ofTotalSeconds() erstellt werden, zum Beispiel:
ZoneOffset zoneOffset = ZoneOffset.ofHours(8);
ZoneOffset zoneOffset = ZoneOffset.ofTotalSeconds(28800);

Im obigen Code haben wir einen Zeitzonenversatz von +8 Stunden bzw. +28800 erstellt Eine ZoneOffset-Instanz des Zeitzonenoffsets in Sekunden.

Die ZoneOffset-Klasse bietet eine Reihe von Methoden zum Abrufen und Bearbeiten verschiedener Teile des Offsets. Beispielsweise können wir die Methode getTotalSeconds() verwenden, um die Gesamtsekunden des Offsets zu erhalten:

int totalSeconds = zoneOffset.getTotalSeconds();
  1. Beispielcode
    Nachfolgend finden Sie einen Beispielcode, der zeigt, wie die OffsetDateTime-Klasse und die ZoneOffset-Klasse verwendet werden, um Datumsangaben mit Zeitzone zu verarbeiten Offsets und Zeit:
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);
    }
}

Ausgabeergebnis:

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

Im obigen Beispielcode haben wir zunächst eine OffsetDateTime-Instanz erstellt, die 12:00:00 Uhr am 1. Januar 2022 darstellt, und die verschiedenen Teile (Jahr, Monat, Tag, Stunde, Minute, Sekunde). Anschließend haben wir eine ZoneOffset-Instanz erstellt, die den Zeitzonenversatz von +8 Stunden darstellt, und die Gesamtsekunden des Versatzes ermittelt.

Fazit:
Mit der OffsetDateTime-Klasse und der ZoneOffset-Klasse in Java 11 können wir Datums- und Uhrzeitangaben mit Zeitzonenversätzen besser verarbeiten. Diese Klassen bieten einen umfangreichen Satz an Funktionen und Methoden, mit denen Entwickler problemlos verschiedene Teile von Datums-, Uhrzeit- und Zeitzonenversätzen abrufen und bearbeiten können. Entwickler können diese Klassen verwenden, um Datums- und Uhrzeitangaben in verschiedenen Zeitzonen entsprechend den tatsächlichen Anforderungen zu verarbeiten und so die Lesbarkeit und Wartbarkeit des Codes zu verbessern.

Das obige ist der detaillierte Inhalt vonVerwenden Sie die neuen OffsetDateTime-Klassen und ZoneOffset-Klassen in Java 11, um Datums- und Uhrzeitangaben mit Offsets zu verarbeiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn