Можно ли это сделать? Если да, то как мне сделать преобразование из Joda-Time в Date и наоборот?
Как конвертировать Joda-Time DateTime в java.util.Date и наоборот?
Ответ 1
Чтобы преобразовать Java Date
в Joda 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();
Ответ 2
Вы не указали какой тип в интересующем вас времени Joda, но:
Instant instant = ...;
Date date = instant.toDate();
instant = new Instant(date);
// Or...
instant = new Instant(date.getTime());
Ни от Date
, ни от Instant
не связаны с часовыми поясами, поэтому здесь нет необходимости указывать здесь.
Нет смысла конвертировать из LocalDateTime
/LocalDate
/LocalTime
в Date
(или наоборот), поскольку это будет зависеть от применяемого часового пояса.
С помощью DateTime
вы можете преобразовать в Date
без указания часового пояса, но для преобразования с Date
в DateTime
необходимо указать часовой пояс или использовать часовой пояс системы по умолчанию. (Если вы действительно этого хотите, я бы прямо указал на это, чтобы было ясно, что это преднамеренный выбор.)
Например:
DateTimeZone zone = DateTimeZone.forID("Europe/London");
Date date = ...;
DateTime dateTime = new DateTime(date.getTime(), zone);
Ответ 3
Преобразовать из Java Date в Joda Время:
Для преобразования из Date to DateTime необходимо указать часовой пояс.
Чтобы преобразовать из java.util Date в Joda Time of Date, вам просто нужно передать java.util дату и часовой пояс для конструктора 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 Дата:
Для обратного случая Joda DateTime имеет метод toDate()
, который вернет дату java.util.
DateTime jodaDate = new DateTime();
java.util.Date date = jodaDate.toDate();
Подробнее... Посетите здесь