日期和simpledateformat,输出错误

时间:2014-02-28 22:56:36

标签: java date simpledateformat

所以,如果打印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());

1 个答案:

答案 0 :(得分:1)

用于解析日期的模式为dd,MM,yyyy,表示日期后跟逗号,后跟月份,后跟逗号,后跟年份。

您输入08/18/2013。 08是有效日期,但18日不是有效月份。你应该输入逗号,而不是斜杠。

自从您作为月份进入2013年第18季度以来,它被解释为2013年的第18个月,相当于2014年的第6个月(自年以来,只有12个月):6月。