Непраздный вопрос.
Моя попытка такая :
date.setYear(Integer.parseInt(s.substring(0,4))-1900);
date.setMonth(Integer.parseInt(s.substring(5,7))-1);
date.setDate(Integer.parseInt(s.substring(8,10)));
с данным в условии все верно выдает, но зачем этот минус ?
package com.javarush.task.task09.task0922;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.*;
/*
Какое сегодня число?
Ввести с клавиатуры дату в формате "2013-08-18"
Вывести на экран введенную дату в виде "AUG 18, 2013".
Воспользоваться объектом Date и SimpleDateFormat.
Требования:
1.Программа должна считывать данные с клавиатуры.
2.В программе должна быть объявлена переменная типа SimpleDateFormat.
3.В программе должна быть объявлена переменная типа Date.
4.Программа должна выводить данные на экран.
5.Вывод должен соответствовать заданию.
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
Date date = new Date();
date.setYear(Integer.parseInt(s.substring(0,4))-1900);
date.setMonth(Integer.parseInt(s.substring(5,7))-1);
date.setDate(Integer.parseInt(s.substring(8,10)));
SimpleDateFormat v = new SimpleDateFormat("MMMM dd, yyyy", Locale.ENGLISH);
String n = v.format(date);
System.out.println(n.toUpperCase());//напишите тут ваш код
}
}