2013-10-12 5 views
9

Я использую java-библиотеку PrettyTime для различных обработок даты и времени в моем приложении java, например, преобразование дат даты в формате date/datetime в даты java или наоборот.Как преобразовать объекты java.util.Date в объекты Calendar?

Однако, я вижу, что date.getYear(), date.getMonth() и т. Д. Все устарели, и вместо этого он использует вместо этого Календарь. Но PrettyTime возвращает результаты только как объекты Date, и я не вижу возможности конвертировать объекты Date в объекты календаря.

В документации Calendar, единственное упоминание я вижу Date метод setTime(Date date), но имя метода ambigious, и документация не ясно, что вызов этого метода на самом деле будет делать. Очевидно, я не могу просто делать calendar.set(date.getYear(), date.getMonth(), ..) и т. Д., Поскольку методы Date устарели.

Так как я могу преобразовать данный объект Date в Календарь?

+1

'календарь Календарь = ...; calendar.setTime (someDateObject); 'просто так, как это –

+0

Или получить время в миллисе. –

+1

Вы, ребята, видимо, вводите немного быстрее, чем я. –

ответ

8
Calendar cal = Calendar.getInstance(); 
cal.setTime(date); 

Вы также можете получить календарь в разных местах, если хотите.

Вы также могли бы сделать

cal.setTimeInMillis(date.getTime()); 
+2

Спасибо, я хочу, чтобы метод 'setTime' не был назван так неоднозначно или имел более четкую документацию, поэтому мне не пришлось бы спрашивать об этом. –

+0

В качестве общей рекомендации, если можно, попробуйте использовать время Джоды. Это намного чище, чем стандартное время Java. –

+0

@ClickUpvote Я бы рекомендовал использовать библиотеку [joda time] (http://www.joda.org/joda-time/) или дождаться Java 8, где обновлен API Date. –

Смежные вопросы