Как конвертировать Joda-Time DateTime в java.утиль.Дата и наоборот?
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
вы можете конвертировать до aDate
без указания часового пояса, но конвертировать из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();
Для Более Подробной Информации Визит Сюда