所以,如果打印01/18/2013我得到2014年6月1日或如果我打印08/18/2013我得到2014年6月8日 我应该改变什么来获得英文格式日期的正确输出?
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date givenDate = formatter.parse(s);
SimpleDateFormat formatterprint = new SimpleDateFormat("MMMM dd, yyyy", Locale.ENGLISH);
System.out.println(formatterprint.format(givenDate).toUpperCase());
答案 0 :(得分:1)
用于解析日期的模式为dd,MM,yyyy
,表示日期后跟逗号,后跟月份,后跟逗号,后跟年份。
您输入08/18/2013
。 08是有效日期,但18日不是有效月份。你应该输入逗号,而不是斜杠。
自从您作为月份进入2013年第18季度以来,它被解释为2013年的第18个月,相当于2014年的第6个月(自年以来,只有12个月):6月。