Java SimpleDataFormat问题-类型不匹配

Java SimpleDataFormat问题-类型不匹配,java,datetime,nullpointerexception,simpledateformat,type-mismatch,Java,Datetime,Nullpointerexception,Simpledateformat,Type Mismatch,我有将字符串值更改为日期的简单方法,但我不断收到错误。我已经导入了import java.sql.Date String lastDate = lastDate(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); try { Date datum = formatter.parse(lastDate); // type mismatch here System.o

我有将字符串值更改为日期的简单方法,但我不断收到错误。我已经导入了import java.sql.Date

String lastDate = lastDate();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
try {   
    Date datum = formatter.parse(lastDate);  // type mismatch here
    System.out.println(datum);
    System.out.print(formatter.format(datum));
} catch (ParseException e){
    e.printStackTrace();
}
我得到一个错误:

类型不匹配:无法从java.util.Date转换为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)

您可能已经导入了
java.sql.Date
simpleDataFormat
的方法返回
java.util.Date
,因此无法将
formatter.parse(lastDate)
转换为
java.sql.Date
类型,因此
import java.util.Date
或使用完整的类名,如下所示:

我仍然得到以下错误:线程“main”中的异常 java.lang.NullPointerException

添加如下所示的
null
检查,以便仅当
lastDate
不为null时,才会执行日期解析逻辑

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

我将代码替换为:字符串lastDate=lastDate();SimpleDataFormat格式化程序=新的SimpleDataFormat(“yyyy-MM-dd HH:MM:ss.SSS”);请尝试{java.util.Date datum=formatter.parse(lastDate);System.out.println(datum);System.out.print(formatter.format(datum));}不幸的是,我仍然收到下面的错误:java.text.DateFormat.parse的线程“main”java.lang.NullPointerException在java.text.SimpleDateFormat.parse中出现异常(未知源代码)(未知源代码)在meritve.prvi.main(prvi.java:109)我猜发生这种情况是因为在某些情况下
lastDate()
返回
null
。@javaguy非常感谢。lastDate()确实有问题。现在可以工作了!String lastDate=lastDate();,您在lastDate..中有日期值?甚至检查lastDate是否为java.util或java.sqlNo,@Hema,这与报告的错误消息不同(它会给出“无法从日期转换为字符串”).看看他是否将lastDate设置为null,在这种情况下,这种情况也会发生在@Olve V.V.是的,lastDate基本上是一个来自SQL的字符串。我同意使用您所使用的类型之一可能更好。我也会尝试。