Знаю, что задачу можно решить распарсив дату, но решил сделать так и тут не понятная ситуция.
Все работает кроме правильности вывода года.
Подскажите почему вывод года некорректный?
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String parseDate = reader.readLine();
String[] dateLine = parseDate.split("-");
int year = Integer.parseInt(dateLine[0]);
int month = Integer.parseInt(dateLine[1]);
int day = Integer.parseInt(dateLine[2]);
Date date = new Date();
date.setYear(year);
date.setMonth(month - 1);
date.setDate(day);
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd, yyyy", Locale.ENGLISH);
System.out.println(dateFormat.format(date).toUpperCase());
//напишите тут ваш код
}
}
Артур Харатян
41 уровень
Ворпос с выводом ГОДА
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Артур Харатян Java Developer
18 октября 2020, 08:02
если что вывод такой
0
Артур Харатян Java Developer
18 октября 2020, 08:02
при этом если запросить отдельно год и вывести его на экран все в пордке показывает 2013
0
Ksenia Volkova Java Developer в DXC Master
18 октября 2020, 08:26решение
В Date годы отсчитываются от 1900
+2
Артур Харатян Java Developer
18 октября 2020, 08:45
т.е. технически надо указать за минусом когда устанавливаю год?
0
Артур Харатян Java Developer
18 октября 2020, 08:51
да, так работает, спасибоб но конечно странно , что когда я устанавливаю дату и запрашиваю ее она высвечивается корректно, без танцев с бубном.
Может тут вопрос именно не в Date а в SimpleDateFormat ?
0
Ksenia Volkova Java Developer в DXC Master
18 октября 2020, 10:31полезный
Нет, дело именно в Date. В объекте date в качестве года у тебя будет храниться число 2013, но в логике класса Date оно соответствует 3913 году. И при выводе форматированной даты ты это и наблюдаешь.
+2