Wie konvertiere ich Joda-Time DateTime in java.util.Date und umgekehrt?

Lesezeit: 2 Minuten

Benutzer-Avatar
Zeit

Ist das möglich? Wenn ja, wie führe ich dann die Konvertierung aus Joda-Zeit zu Datum und umgekehrt?

  • Hast du Joda gesehen? DateTime-Konstruktoren? Gibt es eine, die Ihrer Meinung nach angemessen sein könnte?

    – Wikingersteve

    11. März 2013 um 7:35 Uhr

Benutzer-Avatar
Raul

Umwandeln Java Date zu Joda DateTime:-

Date date = new Date();
DateTime dateTime = new DateTime(date);

Und umgekehrt:-

Date dateNew = dateTime.toDate();

Mit TimeZoneFalls erforderlich:-

DateTime dateTimeNew = new DateTime(date.getTime(), timeZone);
Date dateTimeZone = dateTime.toDateTimeAtStartOfDay(timeZone).toDate();

  • Ihre Umstellung auf DateTime verwendet die Standardzeitzone des Systems – das sollten Sie ausdrücklich sagen. Und Ihre Konvertierung welche tut Die Verwendung einer Zeitzone nimmt den Beginn des Tages, was meiner Meinung nach eine seltsame Wahl ist. EIN DateTime schon weiß die Zeitzone, also ist es seltsam, sie ändern zu wollen – es ist viel sinnvoller, die Zone beim Konvertieren anzugeben aus Date zu DateTime.

    – Jon Skeet

    11. März 2013 um 7:39 Uhr

  • java.utiL.Date weiß eigentlich nichts über a java.util.TimeZone. Also musst du die bekommen TimeZone in einer separaten Variablen, wenn Sie es auch brauchen, wie folgt: TimeZone zone = dateTime.getZone().toTimeZone();

    – Bowmore

    11. März 2013 um 8:09 Uhr

Benutzer-Avatar
Jon Skeet

Sie haben nicht angegeben, an welchem ​​Typ innerhalb von Joda Time Sie interessiert sind, aber:

Instant instant = ...;
Date date = instant.toDate();
instant = new Instant(date);
// Or...
instant = new Instant(date.getTime());

Weder Date Noch Instant beziehen sich auf Zeitzonen, daher muss hier keine angegeben werden.

Es macht keinen Sinn, von zu konvertieren LocalDateTime / LocalDate / LocalTime zu Date (oder umgekehrt), da dies von der angewendeten Zeitzone abhängen würde.

Mit DateTime du kannst umrechnen zu a Date ohne Angabe der Zeitzone, sondern umzurechnen Date zu DateTime Sie sollten die Zeitzone angeben, oder es wird die Standardzeitzone des Systems verwendet. (Wenn du wirklich wollen Ich würde es ausdrücklich angeben, um klarzustellen, dass es sich um eine bewusste Entscheidung handelt.)

Zum Beispiel:

DateTimeZone zone = DateTimeZone.forID("Europe/London");
Date date = ...;
DateTime dateTime = new DateTime(date.getTime(), zone);

  • LocalTime hilft wirklich bei der Vereinfachung des Codes bei der Interaktion mit java.util.Date und beim Testen. Vielen Dank.

    – Alexandre Martins

    7. Juli 2016 um 17:22 Uhr

Benutzer-Avatar
Shreyos Adikari

Konvertieren von Java Date in Joda Time of Date:

Um von Date zu DateTime zu konvertieren, muss die Zeitzone angegeben werden.
Um von java.util Date in Joda Time of Date zu konvertieren, müssen Sie nur das java.util Date und die Zeitzone an den Konstruktor von Joda Time of Date übergeben.

java.util.Date date = new java.util.Date(System.currentTimeMillis());
DateTimeZone dtz = DateTimeZone.getDefault();// Gets the default time zone.
DateTime dateTime = new DateTime(date.getTime(), dtz);

Konvertieren von Joda Time of Date in Java Date:

Für den umgekehrten Fall hat Joda DateTime eine Methode toDate() was das java.util-Datum zurückgibt.

DateTime jodaDate = new DateTime();
java.util.Date date = jodaDate.toDate();

Für mehr Details Besuche hier

1184740cookie-checkWie konvertiere ich Joda-Time DateTime in java.util.Date und umgekehrt?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy