Мне нужно сравнить две строковые даты в java:
String date1 = "2017-05-02";
String date2 = "5/2/2017";
//formatter for the first date
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
Date formattedDate1 = formatter.parse(date1);
//formatter for the second date
formatter = new SimpleDateFormat("m/d/yyyy");
Date formattedDate2 = formatter.parse(date2);
//Wrong results
String formatted1 = formattedDate1.toString(); //Mon Jan 02 00:05:00 EET 2017
String formatted2 = formattedDate2.toString(); //Mon Jan 02 00:05:00 EET 2017
На самом деле, если я сравню эти 2, я, вероятно, получу «правду», но мои даты не январь, а «5 мая 2017 года».
Другой вопрос заключается в том, что я не могу использовать объект Date, мне нужно фактически преобразовать «2017-05-02» в «5/2/2017», а затем передать его другой функции.
java.util.Date
,java.util.Calendar
иjava.text.SimpleTextFormat
теперь являются устаревшими, вытесненными java.time. См. учебник Oracle. - person Basil Bourque   schedule 08.06.2017LocalDate.parse(yyyyMmDdString).format(DateTimeFormatter.ofPattern("M/d/uuuu"))
. - person Ole V.V.   schedule 08.06.2017