日期解析异常 android

Exception on Date parsing android

我正在使用一个函数来计算给定日期和当前日期之间的差异。在所有地方,该功能都运行良好,但在一个地方,它抛出 unparseable date 异常。

下面是我使用的函数:

public boolean timeDiff24hrs(String alarmTime) {

    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy'T'HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
    Date date = new Date();
    String s = sdf.format(date);
    String alarmDateStr="";
    try {
        Date alarmDate=sdf.parse(alarmTime);
        alarmDateStr=sdf.format(alarmDate);
    } catch (ParseException e) {
        e.printStackTrace();
    }

    int diff = diffOf2Days(alarmDateStr, s);

    if (diff > 1439) {
        return true;
    }
    return false;
}

这里我在尝试执行 try 块时遇到异常。

我传递给函数的 alarmDate 是: 1/31/2018 8:58:12 AM +00:00

谁能解释一下。

您使用的日期格式 MM/dd/yyyy'T'HH:mm:ss 不正确 1/31/2018 8:58:12 AM +00:00 并且 return 与预期值不同。

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy'T'HH:mm:ss");

return 1/31/2018T8:58:12

而你正试图通过下方

1/31/2018 8:58:12 AM +00:00