为什么输入日期格式为yyyy-MM-dd但是输出之后每个数字都进行减一?
例如:输入(String) 2015-01-01转换为Date输出之后成了2014-12-01
但是其他格式:yyyy年MM月dd日 yyyy/MM/dd 转换后可以正确转换
楼主:yyyy-MM-dd 这个格式的日期字符串可以被 yyyyMMdd 格式化。
顶楼顶楼,求大神帮助
public class MyConverter extends StrutsTypeConverter {
private SimpleDateFormat[] simpleDateFormat = {
new SimpleDateFormat("yyyy年MM月dd日"),
new SimpleDateFormat("yyyy/MM/dd"),
new SimpleDateFormat("yyyy.MM.dd"),
new SimpleDateFormat("yyyyMMdd"),
new SimpleDateFormat("yyyy-MM-dd")
};
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
if(values == null || values.length == 0){
return null;
}
if(Date.class != toClass){
return null;
}
for(SimpleDateFormat sdf : simpleDateFormat){
try {
Date date = sdf.parse(values[0]);
return date;
} catch (ParseException e) {
continue;
// e.printStackTrace();
// throw new RuntimeException(e);
}
}
return null;
}
@Override
public String convertToString(Map context, Object o) {
// TODO Auto-generated method stub
return null;
}
}
楼主:月份是从0-11
你需要DeBug走一下程序看下String类型的Date 此值是否存在问题(应该是存在问题的)。
楼主我测试了下,出现以上情况。
yyyy-MM-dd 这个格式的字符串 按理说不应被 yyyyMMdd 这个格式 可以格式化的 , 但是在JAVA 中 可以被yyyyMMdd格式化 的,具体原因不知道 ,可能是JAVA的一个bug。
楼主:你把yyyyMMdd 换成 yyyymmdd 。这样,虽然可以被格式化,但是格式化出来是正常的。
楼主:不好意思 --- “你把yyyyMMdd 换成 yyyymmdd 。这样,虽然可以被格式化,但是格式化出来是正常的。 ” 这个是不对的