令人惊讶的结果来自java servlet

时间:2012-04-30 10:15:02

标签: java date servlets datepicker

我在java servlet中得到惊喜结果。我将输入参数(日期)从jsp传递给servlet,如下所示:

 <input name='date_allow_empty' type='text' value='' class='date picker' />

日期选择器位于:http://jsfiddle.net/cBwEK/

让我说我选择了:05-04-2012,当我把这个日期传递给servlet然后我得到了:

1333620371 

但我应该在servlet中获得05-04-2012

Servlet:

  String t= request.getParameter("date_allow_empty");

  out.println(t); //displaying 1333620371 in stead of 05-04-2012

为什么在servlet中显示这种类型的结果?

2 个答案:

答案 0 :(得分:3)

该值1333620371是自大纪元(1970年1月1日)以来的秒数。要从中创建Java Date,请使用Date(long)构造函数,该构造函数自The Epoch以来需要 milli 秒(因此您乘以1,000):

Date dt = new Date(value * 1000);

如果您的价值为String,则首先需要parseLong,例如:

Date dt = new Date(Long.parseLong(value, 10) * 1000);

答案 1 :(得分:0)

您将获得自1970年1月1日00:00:00 GMT以来的秒数,请参阅:http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#getTime()

要将其转换为java.util.Date对象,只需使用:

String t= request.getParameter("date_allow_empty");
Date theDate = new Date(Long.valueOf(t) * 1000);

(http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#Date(长))

编辑:它是以秒为单位,而不是毫秒:(