将String转换为Date时,JDK5 / JDK 6是否有任何区别

时间:2013-05-28 22:54:37

标签: java java-ee ejb

JDK 5是否有可能产生

"default message [Failed to convert property value of type 
'java.lang.String' to required type 'java.util.Date' for property 
'orderDate'; nested exception is  org.springframework.core.convert.ConversionFailedException:Failed to convert
from type java.lang.String to type java.util.Date for value 'Mon May 27 12:27:20 ART 2013'"

但不是在JDK6上?当前应用程序是JBoss上的Spring,因此转换不明确。我在一台机器上从Jboss服务器获得此问题,但在另一台机器上没有从其他Jboss获得此问题。但是现在不知怎的,我无法检查服务器的JVM细节是否有问题。

1 个答案:

答案 0 :(得分:2)

我怀疑JDK Date函数从版本5到6有重大变化。可能是两个环境之间的区域设置差异。

此外,如果您使用的是Spring MVC,最好定义日期字符串格式,并在控制器上为其注册属性编辑器,这样无论语言环境如何,您都可以随时解析/格式化,例如:

@InitBinder
public void registerDateBinder(WebDataBinder binder) {
  DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
  binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}