Как преобразовать DateTime в Date

Как преобразовать Date в DateTime и наоборот?

например.

Date dt = new Date();

Теперь я хочу скрыть это до DateTime.

Кроме

DateTime dtim = new DateTime();

Теперь я хочу преобразовать его в Date.

Ответ 1

Является ли это Joda Time DateTime, о котором вы говорите? Если это так, это будет

dateTime.toDate()

Ответ 2

Если вы хотите конвертировать DateTime в Date, не теряя часовой пояс, сначала конвертируйте DateTime в Joda LocalDateTime.

DateTime dateTimeUtc = new DateTime(); //because my default timezone is UTC
DateTime dateTimeBerlin = dateTimeUtc.withZone(DateTimeZone.forID("Europe/Berlin"));
Date convertedDate = dateTimeBerlin.toLocalDateTime().toDate();

Ответ 3

Я думаю, вы конвертируете его в UTC через Date.getTime(). И после этого, используйте конструктор/сеттер на другом объекте.

Ответ 4

Вы можете легко использовать функцию toDate(), которая получает время даты как java.util.Date:

Date date = MydateTime.toDate();

Ответ 5

Как скаффман сказал выше

dateTime.toDate() 

должен сделать трюк. Но имейте в виду, что если объект dateTime имел другой часовой пояс, чем текущий часовой пояс пользователя, dateTime.toDate() вернет объект даты в пользовательском часовом поясе. то есть

DateTime newDate = new DateTime().toDateTime(DateTimeZone.forID("America/Los_Angeles"));
System.out.println(newDate);
System.out.println(newDate.toDate());

Откроется

2017-07-05T14: 19: 23.294-07: 00

Ср июл 05 15:19:23 MDT 2017

так как мое системное время находится в MDT

Ответ 6

Преобразование в date:

dateTime.toDate()

Преобразовать в DateTime:

new DateTime(new Date())