2

我在 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 中?

4

2 回答 2

3

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

Date dt = new Date(value * 1000);

如果您将值作为 a String,则首先需要parseLong它,例如:

Date dt = new Date(Long.parseLong(value, 10) * 1000);
于 2012-04-30T10:19:43.537 回答
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(long))

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

于 2012-04-30T10:20:06.293 回答