50

这段代码

startDate = new Date(timestampValue.getTime));

给我 :

2012-16-02 05:16:17

什么时候

System.out.println(timestampValue);

返回 :

2012-01-02 05:16:17.0

4

8 回答 8

53

java.sql.TimeStampjava.util.Date.

您可以直接分配一个TimeStamp对象来Date引用:

TimeStamp timeStamp = //whatever value you have;
Date startDate = timestampValue;
于 2013-08-06T12:42:27.890 回答
19

您应该改用日历

Calendar start = Calendar.getInstance();
start.setTimeInMillis( timeStampValue.getTime() );
于 2012-05-16T15:25:21.793 回答
12
于 2015-06-18T23:36:24.790 回答
6

问题可能来自于 Date 已被弃用的事实。

考虑使用

java.util.日历

或者

乔达时间

2015年编辑:

Java 8 及更高版本内置了新的java.time 包,类似于Joda-Time

于 2012-05-16T15:17:50.803 回答
3

花哨的新 Java 8 方式是Date.from(timestamp.toInstant()). 请参阅我在其他地方的类似答案。

于 2015-06-18T21:06:15.197 回答
3
public static Date convertTimestampToDate(Timestamp timestamp)  {
        Instant ins=timestamp.toLocalDateTime().atZone(ZoneId.systemDefault()).toInstant();
        return  Date.from(ins);
}
于 2016-04-20T15:56:23.003 回答
1
java.sql.ResultSet rs;
//fill rs somehow
java.sql.Timestamp timestamp = rs.getTimestamp(1); //get first column
long milliseconds = timestamp.getTime() + (timestamp.getNanos() / 1000000);
java.util.Date date = return new java.util.Date(milliseconds);
于 2014-09-19T09:56:57.333 回答
1

时间戳是一个日期:https ://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.html

java.lang.Object
    java.util.Date
        java.sql.Timestamp
于 2016-01-18T16:28:41.733 回答