Java:resultSet.getTimestamp会浪费时间

时间:2013-09-04 13:03:53

标签: java mysql time resultset

我的数据库中有以下条目:

Start                   End
2013-08-25 14:23:20     2013-09-14 14:23:20

(类型是datetime,数据库是MySQL)

在我的java应用程序中,我想将此日期和时间设置为日历,如下所示:

java.sql.Timestamp timeStampStart = inResults.getTimestamp("start");
System.out.println("Start: " + timeStampStart);
Calendar start = new GregorianCalendar();
start.setTime(timeStampStart);

编辑:

将System.out.println添加到代码中:

Start: 2013-08-25 15:11:08.0
End: 2013-09-14 15:11:08.0 (same code as for start)

现在问题是,当我调用inResults.getTimestamp时,时间会丢失。我得到了正确的日期,但时间是执行查询的时间而不是数据库中的时间。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

没有参数构造函数

  

使用默认时区的默认时区中的当前时间构造默认的GregorianCalendar。

您可以从Timestamp创建java.util.Date,然后从Date创建getHours(),getMinutes()和getSeconds(),并在Calendar的构造函数中使用它。签名如下。

GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)

类似的东西:

    java.sql.Timestamp timeStampStart = inResults.getTimestamp("start"); 
    java.util.Date d = new java.util.Date(timeStampStart.getTime());
    Calendar start = new GregorianCalendar(d.getYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMminutes(), d.getSeconds());