0

我从数据库中提取的字段之一是字符串格式的日期,我需要将其转换为日期类型以与另一个日期进行比较。

请问我该怎么做?到目前为止,我尝试过的所有事情都给了我一个错误,java.util.Date cannot be cast to java.sql.Date这是在尝试以下示例;

simpledateformat-gives-java-lang-classcastexception-java-util-date

以字符串格式提取的日期示例为“2012-10-15 09:00:29.157”。我认为要声明的格式是yyyy-MM-dd HH:mm:ss.SSS但不确定。

谢谢

4

3 回答 3

6

您可以按如下方式创建一个java.util.Datejava.sql.Date

java.util.Date date = new java.util.Date(resultSet.getDate("Column").getTime());

或者,您可以将其转换java.sql.Date为任一java.util.Calendar或 Joda 库的 DateTime 并执行比较。

如果您正在查看解析日期,那么java.text.SimpleDateFormat就是您的朋友。

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
java.util.Date date = format.parse("2012-10-15 09:00:29.157");
于 2013-01-22T12:27:57.440 回答
0

它只是意味着你正在 java.util.Date分配java.sql.Date

从您的示例中,您必须执行以下操作:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
java.util.Date date = (java.util.Date)formatter.parse(""2012-10-15 09:00:29.157"");
于 2013-01-22T12:29:02.383 回答
0

转换Date成 Vikdor 展示的样子。然后得到long timestamp = date.getTimestamp();

现在这个长值是自 1970 UTC 以来的毫秒数。只需按此值进行比较。

于 2013-01-22T12:32:51.260 回答