Задача "Какое сегодня число?" Не могу понять, что происходит с годом... Почему-то к нему прибавляется 1900. Нашел уже другое решение, но всё-таки, как так получается?
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String dataStr = reader.readLine();
int year = Integer.parseInt(dataStr.substring(0, 4));
int month = Integer.parseInt(dataStr.substring(5, 7));
int day = Integer.parseInt(dataStr.substring(8));
System.out.println(year + " " + month + " " + day);
Date date = new Date();
date.setYear(year);
date.setMonth(month-1);
date.setDate(day);
System.out.println(date.getYear() + " " + date.getMonth() + " " + date.getDate());
SimpleDateFormat df = new SimpleDateFormat("MMM dd, yyyy", Locale.ENGLISH);
System.out.println(df.format(date));
}
Скармливаем: 1990-08-18. Далее 2 строчки проверки: 1990 8 18 1990 7 18 Т.е. до внесение в дату и если работать с полями напрямую - всё в порядке. Вывод через SimpleDateFormat даёт какой-то несусветный год: Aug 18, 3890