我从数据库中提取的一个字段是字符串格式的日期,我需要将其转换为日期类型以与另一个日期进行比较。
我该怎么做?到目前为止我尝试的所有内容都给出了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 但不确定。
由于
答案 0 :(得分:5)
您可以从java.util.Date
创建java.sql.Date
,如下所示:
java.util.Date date = new java.util.Date(resultSet.getDate("Column").getTime());
或者,您可以将java.sql.Date
转换为java.util.Calendar
或Joda图书馆的日期时间并进行比较。
如果您正在查看解析日期,那么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");
答案 1 :(得分: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"");
答案 2 :(得分:0)
转换为Date
,正如Vikdor所示。然后得到long timestamp = date.getTimestamp();
现在这个长期值是自1970年以来的毫秒数。只需按此值进行比较。