简单日期格式返回空值,但可以在屏幕上打印日期



我有点进退两难。我有一个方法应该将给定的字符串转换为 Date 类型。出于某种原因,我可以在屏幕上打印出日期,但是当我尝试从方法中检索日期时,解析器返回 null。

用作参数的示例字符串:2017 年 8 月 10 日星期四 07:23:00 EEST

public Date convertStringToDate(String sDate) {
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.getDefault());
try {
Date date = format.parse(sDate);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}

您正在try主体中声明名为date的第二个变量。删除Date部分(使其成为本地部分(。改变

Date date = format.parse(sDate);

date = format.parse(sDate);

(代表OP发布(

我已经在方法之外的某个地方声明了日期变量,为了解决这个问题,我必须声明一个本地变量。下面是更新的工作代码:

public Date convertStringToDate(String sDate) {
Date date;
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.getDefault());
try {
date = format.parse(sDate);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}

最新更新