Sql时间戳到Java日期?
我有一个数据库,它将具有标准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");
看到
-
ResultSet.getTimeStamp()
Timestamp是Date的子类,这意味着它可以在Date所在的任何地方使用。 唯一的区别是,Timestamp比Date更精确(由于SQL规范)。
只需使用:
Timestamp t = resultSet.getTimestamp("columnname"); Date d = t;
话虽如此,将JDBC返回的时间戳转换为正确的Date值有一些好处,省略了纳秒。 当您在应用程序的某个远程部分比较时间戳和日期时,时间戳和日期将不相等,即使它们似乎是“粗糙”的同一时间值。 因此,如果这可能导致问题,请仅使用Timestamp返回的.getTime()值创建一个新的Date实例。
在我的博客中有更多相关内容: 使用Hibernate时的时间戳和日期相等
(即使博客条目是关于Hibernate,它也适用于您的情况)