-1

我有简单的方法将字符串值更改为日期,但我不断收到错误。我已经导入了导入java.sql.Date。SimpleDateFormat问题 - 类型不匹配

​​

我得到的错误:

Type mismatch: cannot convert from java.util.Date to java.sql.Date

如果我把(日期)formatter.parse的盈方(lastDate);直到我运行程序时,我都会得到零错误。方法lastDate成功返回SQL数据库中的最后一个日期,但后来发现错误。

Exception in thread "main" java.lang.NullPointerException 
    at java.text.SimpleDateFormat.parse(Unknown Source) 
    at java.text.DateFormat.parse(Unknown Source) 
    at meritve.prvi.main(prvi.java:108) 
+1

String lastDate = lastDate();你在lastDate中有日期值..? – Hema

+0

甚至检查lastDate是java.util或java.sql的 – Hema

+0

不,@Hema,不能与报告的错误消息的情况(它会给出“不能从Date转换为String”)。 –

回答

1

你会进口java.sql.DateSimpleDateFormatparse方法返回java.util.Date,所以你不能转换到formatter.parse(lastDate)java.sql.Date,所以import java.util.Date或者使用完整的类名,如下所示:

I still get the bellow error: Exception in thread "main" java.lang.NullPointerException

添加一个null检查如下所示,这样日期解析逻辑将仅在lastDate不为空时执行。

if(lastDate != null) { 
     java.util.Date datum = formatter.parse(lastDate); 
     System.out.println(datum); 
     System.out.print(formatter.format(datum)); 
    } 
+0

我已替换如下代码: String lastDate = lastDate(); \t \t SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss.SSS”); \t \t尝试{\t \t \t \t java.util.Date基准= formatter.parse(lastDate); \t \t \t System.out.println(datum); \t \t \t System.out.print(formatter.format(datum)); \t \t} 不幸的是我仍然得到波纹管错误: 异常线程 “main” 显示java.lang.NullPointerException \t在java.text.SimpleDateFormat.parse(来源不明) \t在java.text中。 DateFormat.parse(Unknown Source) \t at meritve.prvi.main(prvi.java:109) – Gregor

+1

我想这是因为'lastDate()'在某些情况下返回'null'。 – Izruo

+1

@Gregor看看上面更新的代码 – developer