我有一个数据库,它将具有标准 sql 格式的 UMT 时间戳。如何提取该数据并使用它设置一个 java 日期对象?
据我所知,mysql 是yyyy-mm-dd hh:mm:ss
至于 java,日期/时间的东西一直让我望而却步。
如果有人知道一个好的图书馆,我愿意接受建议。
为什么不直接读为Date
Date date = resultSet.getTimestamp("date_field");
Timestamp timestamp = resultSet.getTimestamp("date_time_field");
看
Timestamp 是 Date 的子类,这意味着它可以在 Date 所在的任何地方使用。唯一的区别是,Timestamp 比 Date 更精确(由于 SQL 规范)。
只需使用:
Timestamp t = resultSet.getTimestamp("columnname");
Date d = t;
话虽如此,将 JDBC 返回的时间戳转换为适当的日期值有一些好处,省略纳秒。当您在应用程序的某个远程部分比较时间戳和日期时,时间戳和日期将不相等,即使它们看起来“大致”相同的时间值。因此,如果这可能导致问题,请仅使用 Timestamp 返回的 .getTime() 值创建一个新的 Date 实例)
在我的博客中了解更多信息:使用 Hibernate 时的时间戳和日期相等
(即使博客条目是关于 Hibernate 的,它也适用于您的情况)