我们在jsp页面上有以下代码
<fmt:formatDate value="${object.mydate}" pattern="yyyy-MM-dd HH:mm:ss" var="mydate" />
<c:out value="${mydate}"/>
我的实体
@Temporal(TemporalType.DATE)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "DATEEXAMPLE", length = 7)
public Date getDateExample() {
return this.dateexample;
}
Oracle数据库字段中的DATAEXAMPLE是DATA_TYPE&#34; DATE&#34; (和例子,14/08/21 17:01:20)
不幸的是,网站显示我&#34; 2014-08-21 00:00:00&#34;
Somone知道为什么吗?
我正在使用Oracle Database 11g,Spring 3.2,Hibernate 4。
答案 0 :(得分:2)
格式化操作(fmt:formatDate and fmt:formatNumber
)默认使用.toString()
,如果区域设置为NULL
,即使显式格式没有依赖于区域设置的转换。根据应用服务器的设置,可能没有默认语言环境,只留下NULL
尝试添加locale
<fmt:formatDate value="${object.mydate}" pattern="yyyy-MM-dd HH:mm:ss" var="mydate" locale="en"/>
<c:out value="${mydate}"/>
答案 1 :(得分:1)
你的问题在这里:
@Temporal(TemporalType.DATE)
根据javadoc,这会映射到java.sql.Date
。猜猜看,它只包含&#34; date&#34;时间戳的一部分,而不是&#34;时间&#34;部分。您需要另一个,映射到java.sql.Timestamp
。
@Temporal(TemporalType.TIMESTAMP)