-1

我试图从数据库中获取数据,例如..

       while(rs.next())
               {
                java.sql.Timestamp t=rs.getTimestamp("date");

                }

现在我想将 Timestamp 't' 转换为 java.util.Date 类型。我正在尝试

Date d=new Date(t);//but hear given error
System.out.println(d);
System.out.println(d.toGMTString());
4

1 回答 1

2

java.sql.Timestamp已经 extends java.util.Date,所以你不需要做任何事情:

Date date = t;

不过,您应该阅读文档以Timestamp了解一些潜在的意外行为的详细信息,特别是:

由于上面提到的 Timestamp 类和 java.util.Date 类之间的差异,建议代码不要将 Timestamp 值一般视为 java.util.Date 的实例。Timestamp 和 java.util.Date 的继承关系实际上是实现继承,而不是类型继承。

(我将其翻译为“糟糕,我们在本应使用组合的地方使用了继承。”)

为了解决这个问题,您可能需要使用:

Date date = new Date(t.getTime());
于 2012-08-03T05:47:34.467 回答