Как построить дату из строки

Мне нужно сравнить две даты в if / else, текущей дате и предопределенной дате (скажем, 1 января 2011 г.). Это должно было быть простым, но я не могу найти способ установить предопределенную дату примерно так:

Java.util.Date date = new Date("2011-01-01"); 

Как сравнить две даты? Я действительно не знаю, почему так сложно делать.

Пытаться:

 import java.text.SimpleDateFormat; import java.util.Date; ... Date today = new Date(); Date predefined = new SimpleDateFormat("yyyy-MM-dd").parse("2011-01-01"); if(today.equals(predefined)) { ... } 

Используйте java.util.Calendar .

 Calendar cal = Calendar.getInstance(); cal.clear(); cal.set(Calendar.YEAR, 2011); cal.set(Calendar.MONTH, 1); cal.set(Calendar.DATE, 1); Date predefined = cal.getTime(); Date now = new Date(); if (now.after(predefined)) { // do something } else { // do something else } 

Или использовать JodaTime .

Как сравнить две даты? Я действительно не знаю, почему так сложно делать.

Поскольку календари / даты / время действительно трудно понять, а реализация Java в Date (и, частично, в Calendar ) – это полная авария поезда.