Android 试图分析日期会引发语法分析器错误
例如,我试图解析类型为2016年5月23日和2016年5月24日的日期 下面的代码演示了我是如何解析日期的Android 试图分析日期会引发语法分析器错误,android,simpledateformat,Android,Simpledateformat,例如,我试图解析类型为2016年5月23日和2016年5月24日的日期 下面的代码演示了我是如何解析日期的 SimpleDateFormat format1 = new SimpleDateFormat("dd-MM-yyyy"); Date validityDate = null; Date nextDueDate = null; try { validityDate = format1
SimpleDateFormat format1 = new SimpleDateFormat("dd-MM-yyyy");
Date validityDate = null;
Date nextDueDate = null;
try {
validityDate = format1.parse(mValidityDate.getText().toString());
nextDueDate = format1.parse(mNextDueDate.getText().toString());
int validate = validate(validityDate, nextDueDate);
} catch (Exception ex) {
Toast.makeText(getApplicationContext(),ex.toString(),Toast.LENGTH_SHORT).show();
}
以下是查找两个日期之间差异数的代码
public static int validate(Date valid, Date nextDueDate) {
return (int) ((nextDueDate.getTime() - valid.getTime()) / (1000 * 60 * 60 * 24l));
}
问题是,我在偏移量3处遇到了日期分析器错误。为什么会这样?您需要使用两种不同的
SimpleDataFormat
对于2016年5月23日,您需要新的SimpleDateFormat(“dd-MMM-yyyy”)代码>
2016年5月24日,您需要新的SimpleDateFormat(“dd-MMM-yyyy”)代码>您需要使用两种不同的SimpleDataFormat
对于2016年5月23日,您需要新的SimpleDateFormat(“dd-MMM-yyyy”)代码>
2016年5月24日,您需要新的SimpleDateFormat(“dd-MMM-yyyy”)代码>您正在使用模式“dd-MM-yyyy
”,这意味着您正在尝试解析表单12-05-2016
的日期
如果您需要解析一个日期,如“2016年5月12日”
”,那么您必须为该月使用300万个字母,如下所示。“dd-MMM-yyyy
”。
但是,如果解析日期“12-06-2016
”,则会输出“12-06-2016
”
如果你需要完整的月份,那么你应该使用400万个字母。例如:“dd-MMMM-yyyy
”。然后它将输出2016年6月12日
您正在使用模式“dd-MM-yyyy
”,这意味着您正在尝试解析表单的日期2016年5月12日
如果您需要解析一个日期,如“2016年5月12日”
”,那么您必须为该月使用300万个字母,如下所示。“dd-MMM-yyyy
”。
但是,如果解析日期“12-06-2016
”,则会输出“12-06-2016
”
如果你需要完整的月份,那么你应该使用400万个字母。例如:“dd-MMMM-yyyy
”。然后它将输出2016年6月12日