SimpleDateFormat问题 - 类型不匹配

时间:2017-04-08 10:54:25

标签: java datetime nullpointerexception simpledateformat type-mismatch

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

<div class="plyrWrapper">
    <div data-type="youtube" data-video-id="AbcdEFghIJ"></div>
</video>


// plyr
window.plyr = plyr;
plyr.setup({
    //options
});

我收到错误:

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(); }

如果我把(Date)放在formatter.parse(lastDate)的前面;在运行程序之前,我得到零错误。方法lastDate成功返回SQL数据库中的最后一个日期,但后来我得到了错误。

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

1 个答案:

答案 0 :(得分:1)

您已导入java.sql.DateSimpleDateFormat的{​​{3}}方法返回java.util.Date,因此您无法将formatter.parse(lastDate)转换为java.sql.Date类型,所以import java.util.Date或者使用完整的类名,如下所示:

  

我仍然收到以下错误:线程“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));
    }