【发布时间】:2018-02-09 11:02:14
【问题描述】:
我正在使用一个函数来取出给定日期和当前日期之间的差异。在所有地方,该函数都可以正常工作,但在某个地方,它抛出了 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
谁能解释一下。
【问题讨论】:
-
对于日期“1/31/2018 8:58:12 AM +00:0”,您的日期格式不正确。
-
该日期不适用于您使用的格式
-
unparseable在通过日期不是有效格式时出现。 -
将您的日期格式更改为适当的格式
-
顺便考虑扔掉长期过时且臭名昭著的麻烦
SimpleDateFormat和朋友,并将ThreeTenABP添加到您的Android项目中,以便使用java.time,现代Java日期和时间API .使用起来感觉好多了。
标签: android android-activity simpledateformat date-parsing android-date