Legen Sie die Zeitzone eines java.util.Date fest

Muhammad Zeeshan 12 Oktober 2023
  1. Verwenden Sie ZonedDateTime, um die Zeitzone eines java.util.Date festzulegen
  2. Verwenden Sie UTC Instant, um die Zeitzone eines java.util.Date festzulegen
Legen Sie die Zeitzone eines java.util.Date fest

In diesem kurzen Tutorial erfahren Sie, wie Sie mit Java die Zeitzone festlegen, die einem Datum zugeordnet ist. Das java.util.Date hat keine Zeitzone.

Es bezeichnet den UTC/GMT-Standard ohne Zeitzonenverschiebung. Denn beim Erstellen einer String-Darstellung verwendet deren Funktion toString die Standard-Zeitzone der JVM als Grundlage für ihre Anwendung.

Die eingebauten Klassen java.util.Date, .Calendar und java.text.SimpleDateFormat sind im Allgemeinen schwierig zu handhaben und sollten vermieden werden. Wir verwenden stattdessen das Paket java.time, das standardmäßig mit Java 8 geliefert wird.

Nachfolgend finden Sie die Möglichkeiten, wie die Klassen java.time eine Zeitzone darstellen können.

Verwenden Sie ZonedDateTime, um die Zeitzone eines java.util.Date festzulegen

Die Anwendung einer Zeitzone, eines Offsets und der Richtlinien für den Umgang mit Unregelmäßigkeiten wie Daylight Saving Time oder DST ist eine bessere Option als die Alternative.

Wenn eine ZoneId mit einem Instant verwendet wird, wird eine ZonedDateTime erzeugt. Achten Sie immer darauf, den korrekten Namen für die Zeitzone zu verwenden.

Abkürzungen mit drei bis vier Buchstaben wie EST, die weder spezifisch noch standardisiert sind, sollten niemals verwendet werden.

ZoneId zId = ZoneId.of("Pakistan/Karachi");
ZonedDateTime zonedt = ZonedDateTime.ofInstant(instant, zId);

Verwenden Sie UTC Instant, um die Zeitzone eines java.util.Date festzulegen

Instant ist der grundlegende Baustein von java.time. Es stellt einen Augenblick auf der Zeitachse dar, der in UTC gemessen wird.

Implementieren Sie den Großteil Ihrer Anwendungslogik mit Instant-Objekten.

Instant instant = Instant.now();

LocalDateTime.

Wenn ein zu analysierender Text keine Offset- oder Zonenindikatoren enthält, sollte er als LocalDateTime interpretiert werden.

Wenn Sie sich sicher sind, welche Zeitzone verwendet werden soll, können Sie eine ZonedDateTime generieren, indem Sie eine ZoneId zuweisen. Sehen Sie sich das folgende Codebeispiel an.

LocalDateTime.parse("2022-09-10T01:13:15.123456789").atZone(ZoneId.of("Asia/Pakistan"))
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Verwandter Artikel - Java Date