0

我有一个数据库,它将具有标准 sql 格式的 UMT 时间戳。如何提取该数据并使用它设置一个 java 日期对象?

据我所知,mysql 是yyyy-mm-dd hh:mm:ss 至于 java,日期/时间的东西一直让我望而却步。

如果有人知道一个好的图书馆,我愿意接受建议。

4

2 回答 2

4

为什么不直接读为Date

Date date = resultSet.getTimestamp("date_field");

Timestamp timestamp = resultSet.getTimestamp("date_time_field");

于 2012-06-15T18:18:24.827 回答
1

Timestamp 是 Date 的子类,这意味着它可以在 Date 所在的任何地方使用。唯一的区别是,Timestamp 比 Date 更精确(由于 SQL 规范)。

只需使用:

Timestamp t = resultSet.getTimestamp("columnname");
Date d = t;

话虽如此,将 JDBC 返回的时间戳转换为适当的日期值有一些好处,省略纳秒。当您在应用程序的某个远程部分比较时间戳和日期时,时间戳和日期将不相等,即使它们看起来“大致”相同的时间值。因此,如果这可能导致问题,请仅使用 Timestamp 返回的 .getTime() 值创建一个新的 Date 实例)

在我的博客中了解更多信息:使用 Hibernate 时的时间戳和日期相等

(即使博客条目是关于 Hibernate 的,它也适用于您的情况)

于 2012-06-15T18:32:23.740 回答