Legen Sie die Zeitzone eines java.util.Date fest
-
Verwenden Sie
ZonedDateTime
, um die Zeitzone einesjava.util.Date
festzulegen -
Verwenden Sie
UTC Instant
, um die Zeitzone einesjava.util.Date
festzulegen
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"))
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