【发布时间】:2017-05-10 03:29:40
【问题描述】:
我正在尝试计算两个日期字符串之间的差异,这两个日期字符串都是通过格式 (yyyy/MM/dd) 的 html 表单从用户那里获取的 代码:
public boolean diffDate() throws ParseException
{
date1 = getissuedate();
date2 = getduedate();
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy/MM/dd");
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy/MM/dd");
Date date_old = formatter1.parse(date1);
Date date_new = formatter2.parse(date2);
long milis1 = date_old.getTime();
long milis2 = date_new.getTime();
long diff = milis2 - milis1;
if( diff<3 || diff>3)
{
return true;
}
else
{
return false;
}
}
如果日期之间的差异不等于 3,现在我正在使用 if 条件在我的网页中报告错误。 代码:
try {
if(diffDate())
{
errors.add("duedate", new ActionMessage("error.duedate.required"));
}
} catch (ParseException ex) {
Logger.getLogger(IssueBookForm.class.getName()).log(Level.SEVERE, null, ex);
}
error.duedate.required 映射到“检查日期”的地方
所以,问题是两个日期字符串的任何值都会打印“检查日期”错误。
【问题讨论】:
-
你不需要两个格式化程序。
-
@Pablo :没关系我删除了第二个格式化程序,但问题仍然存在....:(
标签: java