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日。
我尝试了很多方法,但没有得到任何好的解决方案。
请帮助,谢谢!
答案 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日。