将字符串转换为SQl日期格式

时间:2014-01-27 13:11:15

标签: java oracle postgresql jdbc

我需要将数据从Postgres加载到Oracle。从Postgres读取数据时我得到了以下格式“2013-02-13 00:30:22.402”的日期,现在我需要将这个日期加载到oracle db中 我试过但是得到了异常

String dd = "2013-02-13 00:30:22.402";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
java.sql.Date dateform=(Date) formatter.parse(dd);
System.out.println(dateform);

引发此异常:

Exception in thread "main" java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
    at ghg.main(ghg.java:26)

3 个答案:

答案 0 :(得分:0)

parse返回java.util.Date,因此您需要使用构造函数new Date(long l)构造一个新的sql Date对象:

java.sql.Date dateform= new java.sql.Date(formatter.parse(dd).getTime());

答案 1 :(得分:0)

这样做

java.util.Date date = formatter.parse(dd);
java.sql.Date sqlDate = new java.sql.Date(date.getTime());  

答案 2 :(得分:0)

默认情况下解析函数返回Date对象。所以你不能投出回报值。

  

日期解析(字符串来源)   从给定字符串的开头解析文本以生成日期。

             String dd = "2013-02-13 00:30:22.402";
             DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
             java.sql.Date dateform=formatter.parse(dd);
相关问题