Какой правильный способ создать дату на Java?

Я запутался Java API для класса Date. Все кажется устаревшим и связано с классом Calendar. Поэтому я начал использовать объекты Calendar, чтобы делать то, что мне хотелось бы делать с датой, но интуитивно это беспокоит меня использовать объект Calendar, когда все, что я действительно хочу сделать, это создать и сравнить две даты.

Есть ли простой способ сделать это? Пока я делаю

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(0);
cal.set(year, month, day, hour, minute, second);
Date date = cal.getTime(); // get back a Date object

Ответ 1

Вы можете использовать SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date d = sdf.parse("21/12/2012");

Но я не знаю, следует ли считать это более правильным, чем использовать Календарь...

Ответ 2

Отличная библиотека joda-time почти всегда является лучшим выбором, чем классы Java Date или Calendar. Вот несколько примеров:

DateTime aDate = new DateTime(year, month, day, hour, minute, second);
DateTime anotherDate = new DateTime(anotherYear, anotherMonth, anotherDay, ...);
if (aDate.isAfter(anotherDate)) {...}
DateTime yearFromADate = aDate.plusYears(1);

Ответ 3

Вы можете попробовать joda-time.