我从ResultSet获取Date对象时遇到问题。在数据库中,它具有一个值(例如2014-08-01),并且从resultSet获取它之后,它具有另一个值(2014-08-31)。我知道ResultSet的getDate方法返回java.sql.Date,但是我尝试了一些解决方案,例如:
Date date=new java.util.Date(resultSet.getDate(3).getTime());
或
Date date=resultSet.getTimestamp();
但问题是相同的。如果我尝试,
Date date=resultSet.getDate();
它将抛出NullPointerException。
有人可以解释吗?
在您的情况下,您没有提供要检索的“日期”字段的columnName。
这应该做的工作
while (rs.next()) { java.sql.Time dbSqlTime = rs.getTime("columnName"); java.sql.Date dbSqlDate = rs.getDate("columnName"); java.sql.Timestamp dbSqlTimestamp = rs.getTimestamp("columnName"); java.util.Date dbSqlTimeConverted = new java.util.Date(dbSqlTime.getTime()); java.util.Date dbSqlDateConverted = new java.util.Date(dbSqlDate.getTime()); System.out.println(dbSqlTimeConverted); System.out.println(dbSqlDateConverted); }
遍历ResultSetObject从一开始的日期ResultSetObject被java.sql.Date然后将其转换为java.util.Date
ResultSetObject
java.sql.Date
java.util.Date