Как конвертировать Joda-Time DateTime в java.утиль.Дата и наоборот?


можно ли это сделать? Если да, то как мне сделать преобразование из Joda-Time до дата и наоборот?

3 62

3 ответа:

преобразование Java Date до Джода 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();

вы не указали, какой тип в течение времени Joda вас интересует, но:

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

ни Date, ни Instant связаны с часовыми поясами, поэтому здесь нет необходимости указывать один.

не имеет смысла конвертировать из LocalDateTime/LocalDate/LocalTime до Date (или наоборот), поскольку это будет зависеть от применяемого часового пояса.

С DateTime вы можете конвертировать до a Date без указания часового пояса, но конвертировать из Date до DateTime вы должны указать часовой пояс, или он будет использовать системный часовой пояс по умолчанию. (Если вы действительно хочу что, я бы уточнил это явно, чтобы дать понять, что это преднамеренный выбор.)

например:

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

для конвертации из Java Date в Joda Time of Date:
Для преобразования из даты в дату-время необходимо указать часовой пояс.
Для преобразования из java.util Date to Joda Time of Date вам просто нужно передать 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 Time of Date в Java Date:
В обратном случае Joda DateTime имеет метод toDate() который вернет java.утиль Дата.

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

Для Более Подробной Информации Визит Сюда