Android 日期解析时出现异常

Android 日期解析时出现异常,android,android-activity,simpledateformat,date-parsing,android-date,Android,Android Activity,Simpledateformat,Date Parsing,Android Date,我正在使用一个函数来计算给定日期和当前日期之间的差异。在所有地方,该函数都工作得很好,但在一个地方,它抛出了不可解析的日期异常 下面是我使用的函数: public boolean timeDiff24hrs(String alarmTime) { SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy'T'HH:mm:ss"); sdf.setTimeZone(TimeZone.getTimeZone("GMT"));

我正在使用一个函数来计算给定日期和当前日期之间的差异。在所有地方,该函数都工作得很好,但在一个地方,它抛出了不可解析的日期异常

下面是我使用的函数:

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为: 2018年1月31日上午8:58:12+00:00

有人可以解释一下。

您使用的日期格式MM/dd/yyyy'T'HH:MM:ss不正确2018年1月31日8:58:12 AM+00:00,返回的值与预期值不同

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy'T'HH:mm:ss");
返回2018年1月31日T8:58:12

你正试图从下面通过

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

日期为1/31/2018 8:58:12AM+0:0你的日期格式不正确。这个日期不是你无法使用的格式,当通过日期不是有效格式时。将日期格式更改为适当的格式,一旁考虑扔掉长期过时和臭名昭著的简单的格式和朋友,并添加到您的Android项目中,以便使用java.time,即现代java日期和时间API。和他一起工作真是太好了。一个非常直接的回答是“有人能解释一下吗?”-