无法将类型类java.sql.Timestamp转换为类org.joda.time.DateTime

时间:2014-01-27 10:06:44

标签: java jsp jstl jodatime formatdatetime

在我的JSP页面的jdk-1.7.0_51平台上使用tomcat-7.0.42windows 7

<fmt:formatDate value='${abtest.modifiedDate}' pattern="yyyy-MM-dd HH:mm:ss"/>

其中abtest.modifiedDate属性的类型为java.util.Date,并使用java.sql.Timestamp实例初始化。

抛出以下异常:

javax.servlet.jsp.JspException: javax.el.ELException: Cannot convert 1/24/14 4:31 PM of type class java.sql.Timestamp to class org.joda.time.DateTime

错误似乎很奇怪,因为abtest.modifiedDate属性未使用org.joda.time.DateTime初始化,并且在所有环境中都不会发生。

还尝试用<fmt:formatDate...标记替换<joda:format ...,但又出现了其他错误:

javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: value attribute of format tag must be a ReadableInstant or ReadablePartial, was: java.sql.Timestamp

1 个答案:

答案 0 :(得分:1)

在实体类的DateTime字段中添加此注释

@Type(type="org.joda.time.contrib.hibernate.PersistentDateTime")
private DateTime birthDay;

JSP中,继续使用joda format tag

<c:set var="formattedDateTimeValue">
  <joda:format value="${DateTimeValue}" pattern="dd.MM.yyyy" />
  <!-- Or any pattern you want -->
</c:set>