Java SimpleDataFormat问题-类型不匹配
我有将字符串值更改为日期的简单方法,但我不断收到错误。我已经导入了import java.sql.DateJava 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
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的字符串。我同意使用您所使用的类型之一可能更好。我也会尝试。