问问题
78243 次
3 回答
114
要将JavaDate
转换为JodaDateTime
:-
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());
两者都与时区Date
无关Instant
,因此无需在此处指定。
LocalDateTime
从/ LocalDate
/转换LocalTime
为Date
(反之亦然)是没有意义的,因为这取决于所应用的时区。
withDateTime
你可以不指定时区转换成a Date
,但是要转换Date
成DateTime
你应该指定时区,否则它将使用系统默认时区。(如果您真的想要,我会明确指定它以明确表示这是一个深思熟虑的选择。)
例如:
DateTimeZone zone = DateTimeZone.forID("Europe/London");
Date date = ...;
DateTime dateTime = new DateTime(date.getTime(), zone);
于 2013-03-11T07:36:17.427 回答
1
将 Java 日期转换为 Joda 日期时间:
需要指定从日期转换为 DateTime 时区。
要将 java.util 日期转换为 Joda 日期时间,您只需将 java.util 日期和时区传递给 Joda 日期时间的构造函数。
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 日期:
对于相反的情况,Joda DateTime 有一个方法toDate()
将返回 java.util 日期。
DateTime jodaDate = new DateTime();
java.util.Date date = jodaDate.toDate();
欲了解更多详情,请访问这里
于 2013-03-11T07:36:05.997 回答