Java日期格式将yy转换为yyyy问题

时间:2017-04-04 10:11:32

标签: java date simpledateformat

Java日期格式问题,当我尝试使用以下代码转换日期04-Apr-17时:

       DateFormat informat= new SimpleDateFormat("dd-MMM-yy");
       DateFormat outformat= new SimpleDateFormat("dd-MMM-yyyy");
       System.out.println(outformat.format(informat.parse("04-Apr-17")));

我的时间是04年4月4日,而不是2017年4月4日。

我尝试了很多方法,但没有得到任何好的解决方案。

请帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

我得到了这个问题的原因,我在JSF环境中使用了这个日期转换&正在检查用户从网页输入的日期模式。 当用户通过" dd-MMM-yy"模式,我有下面的代码来解析一些支持的日期模式列表的日期。

    Date date = null;
    boolean isDateValid = false;
    for (String pattern : patterns) {

        DateFormat df = new SimpleDateFormat(pattern);
        try {
            date = df.parse(value);

            String newDateString = df.format(date);
            System.out.println(newDateString);

            isDateValid = true;
            break;

        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

    System.out.println("Date : " + date);

因此,当用户在" dd-MMM-yy"中提供日期时模式,但" dd-MMM-yy"模式也由" dd-MMM-yyyy"解析。代码中的模式:

    DateFormat df = new SimpleDateFormat(pattern);
    date = df.parse(value);

这就是原因,我的时间是04年4月4日而不是2017年4月4日。