java.text.ParseException: Unparseable date: "201011"
at java.text.DateFormat.parse(DateFormat.java:337)
at com.xjgz.util.DateUtils.strToDate(DateUtils.java:36)
at com.xjgz.action.TemplateAnalysisAction.findIndiDataByDate(TemplateAnalysisAction.java:153)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
只贴了其中一部分的错误信息.
这个问题也是研究了1个小时 才发现问题所在.
例如1:
String nowDate = "20100205";
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
date = sdf.parse();
System.out.println(date);
当前nowDate时间格式为20100205 ,而需要格式化成yyyy-MM-dd,这时就会报以上的错误.
修改时需要吧时间格式修改为"yyyyMMdd"才可以,或者修改时间格式为"2010-02-05".
例如2:
String nowDate = "2010-02";
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
date = sdf.parse();
System.out.println(date);
当前nowDate时间格式为2010-02 ,而需要格式化成yyyy-MM-dd,这样也会报以上的错误.
修改时需要吧时间格式修改为"yyyy-MM",或者修改时间格式为"2010-02-05".
总结:在格式化字符型时间为日期型时,需要将格式设置一致才可以.