在JSP中从字符串到日期的自动转换

时间:2011-11-04 14:16:40

标签: java jsp date jstl

我不确定为什么以下代码有效: str2011-11-04 15:54:48.38格式的日期。这是一个字符串。 执行以下代码时:

<fmt:parseDate var="xxx" type="date" pattern="y-M-d H:m:s" value="${str}" />
xxx: <c:out value="${xxx}"></c:out><br />
xxx.time: <c:out value="${xxx.time}"></c:out><br />
str.time: <c:out value="${str.time}"></c:out><br />
str: <c:out value="${str}"></c:out><br />

我得到了这个输出

xxx: Fri Nov 04 15:54:48 GMT 2011
xxx.time: 1320422088038
str.time: 1320422088380
str: 2011-11-04 15:54:48.38

怎么可能?是否有str.time值的自动转换?这些转换如何运作?

2 个答案:

答案 0 :(得分:0)

您正在获取该输出,因为Date对象的“getTime()”返回自Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。

修改

使用:http://www.epochconverter.com/

然后输入秒数输出,你会看到它对应于你的日期。

答案 1 :(得分:0)

我认为你没有运行你认为正在运行的代码。这个肯定会在PropertyNotFoundException上抛出${str.time}。要对它进行naildown,请添加以下行以找出${str} 实际的内容。

<c:out value="${str.class.name}" />

它显然是一个在toString()上打印给定字符串格式并且有getTime()方法的类。