java - 无法将字符串转换为日期

标签 java

我无法在 Java 中将字符串转换为日期,而且我就是想不通。

String sdate1 = "01/04/2016";
SimpleDateFormat  dateformat = new SimpleDateFormat("dd/MM/yyyy");  
Date date1 = dateformat.parse(sdate1);

最后一行导致错误,这迫使我用 try/catch 包围它。

用 try/catch 包围它会导致 date1 在稍后尝试打印变量时导致错误。该错误指出“局部变量 date1 可能尚未初始化”。

Date date1;
try {
    date1 = dateformat.parse(sdate1);
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

根据互联网上的一些挖掘,我认为这表明该变量尝试失败。但是,我看不出它怎么会失败。

最佳答案

date1 变量在您的情况下没有明确分配(如果抛出异常,则不会获得任何值,因为 catch 子句没有为该变量分配任何值) ,因此您以后无法使用它(例如,打印)。

要解决此问题,您可以为变量指定一些初始值:

Date date1 = null;
try {
    date1 = dateformat.parse(sdate1);
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
if (date1 != null) {
    // it was parsed successfully
    .. do something with it
}

关于java - 无法将字符串转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45742969/

相关文章:

java - 在 Qt 中打开带有附加文件扩展名的外部程序

java - 处理 Firebase 身份验证和数据库实时事务之间的最佳方式

java - Spring Boot 数据源数据库连接配置不起作用

java - 在 Java 中什么时候最好在一行中使用包括库在内的全名声明,而不是在顶部导入任何东西?

java - 将通用列表发送到 Jersey servlet

java - 用户 'root' 的访问被拒绝 @'localhost' - 无法使用 java 应用程序连接到数据库

java - 无法从java启动程序(使用ProcessBuilder)

java - 存在可选的长参数,但不能转换为空值

java - 如何使用 JavaSnoop 附加到 Java 小程序?

Java Web Start - 更新一些用户?