73

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

4

3 に答える 3

114

JavaDateJodaDateTimeに変換するには:-

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();
于 2013-03-11T07:33:48.180 に答える
6

興味のある Joda Time 内のタイプを指定していませんが、

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

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

LocalDateTime/ LocalDate/LocalTimeからDate(またはその逆)への変換は、適用されるタイム ゾーンに依存するため意味がありません。

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

例えば:

DateTimeZone zone = DateTimeZone.forID("Europe/London");
Date date = ...;
DateTime dateTime = new DateTime(date.getTime(), zone);
于 2013-03-11T07:36:17.427 に答える
1

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 Time of Date から Java Date に変換するには:
逆の場合、Joda DateTime にはtoDate()java.util Date を返すメソッドがあります。

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

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

于 2013-03-11T07:36:05.997 に答える