Задача "Какое сегодня число?" Не могу понять, что происходит с годом... Почему-то к нему прибавляется 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