Ist das möglich? Wenn ja, wie führe ich dann die Konvertierung aus Joda-Zeit zu Datum und umgekehrt?
Wie konvertiere ich Joda-Time DateTime in java.util.Date und umgekehrt?
Zeit
Raul
Umwandeln Java Date
zu Joda DateTime
:-
Date date = new Date();
DateTime dateTime = new DateTime(date);
Und umgekehrt:-
Date dateNew = dateTime.toDate();
Mit TimeZone
Falls 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. EINDateTime
schon weiß die Zeitzone, also ist es seltsam, sie ändern zu wollen – es ist viel sinnvoller, die Zone beim Konvertieren anzugeben ausDate
zuDateTime
.– Jon Skeet
11. März 2013 um 7:39 Uhr
-
java.utiL.Date
weiß eigentlich nichts über ajava.util.TimeZone
. Also musst du die bekommenTimeZone
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
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 mitjava.util.Date
und beim Testen. Vielen Dank.– Alexandre Martins
7. Juli 2016 um 17:22 Uhr
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
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