Java日期的Sql时间戳?
我有一个数据库,它将有标准sql格式的UMT时间戳。如何提取该数据并使用它设置java日期对象 据我所知,mysql是Java日期的Sql时间戳?,java,mysql,date,jdbc,Java,Mysql,Date,Jdbc,我有一个数据库,它将有标准sql格式的UMT时间戳。如何提取该数据并使用它设置java日期对象 据我所知,mysql是yyyy-mm-dd hh:mm:ss至于java,日期/时间的东西总是让我摸不着头脑 如果有人知道这方面有一个很好的库,我愿意接受建议。为什么不直接读作Date Date date = resultSet.getTimestamp("date_field"); Timestamp timestamp = resultSet.getTimestamp("date_time_fi
yyyy-mm-dd hh:mm:ss
至于java,日期/时间的东西总是让我摸不着头脑
如果有人知道这方面有一个很好的库,我愿意接受建议。为什么不直接读作
Date
Date date = resultSet.getTimestamp("date_field");
Timestamp timestamp = resultSet.getTimestamp("date_time_field");
见
Date date = resultSet.getTimestamp("date_field");
Timestamp timestamp = resultSet.getTimestamp("date_time_field");
见
Timestamp t = resultSet.getTimestamp("columnname");
Date d = t;
话虽如此,将JDBC返回的时间戳转换为适当的日期值(省去纳秒)有一些好处。当您在应用程序的某个远程部分比较时间戳和日期时,时间戳和日期将不相等,即使它们看起来“几乎”是相同的时间值。所以,如果这可能导致问题,请仅使用Timestamp返回的.getTime()值创建一个新的日期实例)
更多关于这方面的信息,请访问我的博客:
(尽管这篇博文是关于Hibernate的,但它也适用于您的情况)时间戳是日期的一个子类,这意味着它可以在日期所在的任何地方使用。唯一的区别是,时间戳比日期更精确(由于SQL规范) 只需使用:
Timestamp t = resultSet.getTimestamp("columnname");
Date d = t;
话虽如此,将JDBC返回的时间戳转换为适当的日期值(省去纳秒)有一些好处。当您在应用程序的某个远程部分比较时间戳和日期时,时间戳和日期将不相等,即使它们看起来“几乎”是相同的时间值。所以,如果这可能导致问题,请仅使用Timestamp返回的.getTime()值创建一个新的日期实例)
更多关于这方面的信息,请访问我的博客:
(尽管该博客文章是关于Hibernate的,但它也适用于您的情况)与其他java.util.Date实例相比,使用它是不安全的,因为这些实例下面实际上不是java.sql.Timestamp。新的java.util.Date应该由java.sql.Timestamp的长值生成,与下面实际上不是java.sql.Timestamp的其他java.util.Date实例相比,该值使用起来不安全。应根据java.sql.Timestamp的长值创建一个新的java.util.Date