web-dev-qa-db-ja.com

Joda-Time DateTimeをJava.util.Dateに、またはその逆に変換する方法は?

それは可能ですか?はいの場合、 Joda-Time から Date へ、またはその逆に変換するにはどうすればよいですか?

64
Time

Java DateJoda DateTime :-に変換するには

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

およびその逆:-

Date dateNew = dateTime.toDate();

必要に応じて、TimeZoneを使用:-

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

興味のあるJoda Time内のタイプは指定していませんが、次のとおりです。

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

DateInstantもタイムゾーンに関連していないため、ここで指定する必要はありません。

LocalDateTime/LocalDate/LocalTimeからDate(またはその逆)に変換することは意味がありません。適用されます。

DateTimeを使用すると、タイムゾーンを指定せずにtoDateを変換できますが、DateからDateTimeに変換する必要がありますタイムゾーンを指定するか、システムのデフォルトタイムゾーンを使用します。 (本当にwantである場合は、明示的に指定して、それが意図的な選択であることを明確にします。)

例えば:

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

Java DateからJoda Time of Dateに変換するには:
DateからDateTimeタイムゾーンに変換するには、指定する必要があります。
Java.util DateからJoda Time of Dateに変換するには、Java.util DateとタイムゾーンをJoda Time of Dateのコンストラクターに渡すだけです。

_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);
_

日付のJoda時刻からJava Date:に変換するには
逆の場合、Joda DateTimeには、Java.util Dateを返すメソッドtoDate()があります。

_DateTime jodaDate = new DateTime();
Java.util.Date date = jodaDate.toDate();
_

詳細については こちらをご覧ください

1
Shreyos Adikari