我有一个字符串过期日期。但我需要在过期日期到来的前一天执行一些 SQL 语句。我得到了我的过期日期和截止日期:
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
String expiredDate = null;
String currentDate = dateFormat.format(new Date());
Calendar cal = Calendar.getInstance();
try {
cal.setTime(dateFormat.parse(loanDate));
cal.add(Calendar.WEEK_OF_YEAR, 2);
expiredDate = dateFormat.format(cal.getTimeInMillis());
cal.add(Calendar.WEEK_OF_YEAR, -2);
} catch (ParseException e) {
e.printStackTrace();
}
然后,我得到了一个if语句来执行SQL语句:
if(expiredDate.equals(currentDate)){
promptExtensionDialog();
}
我想要实现的是 if 语句,而不是 expiredDate 本身,我需要获取过期日期之前的一天并与当前日期进行比较。我想知道如何实现这一目标?
提前致谢。
EDIT
try {
cal.setTime(dateFormat.parse(expiredDate));
cal.add(Calendar.DATE, -1);
expiredDate = dateFormat.format(cal.getTimeInMillis());
} catch (ParseException e) {
e.printStackTrace();
}
Toast.makeText(LoanBook.this,
expiredDate, Toast.LENGTH_LONG)
.show();
这会返回下一个日期而不是上一个日期。你有什么想法?
使用 Java(8 之前)的内置日期和时间 API 会让你生不如死。使用JodaTime http://www.joda.org/joda-time/用于复杂的日期时间操作。
获取前一天的数据就这么简单。
DateTime dateTime = new DateTime();
System.out.println(dateTime);
System.out.println(dateTime.minusDays(1));
如果您不需要任何外部库:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String strDate = "2014-10-28";
Date date = sdf.parse(strDate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, -1);
Date yesterday = calendar.getTime();
System.out.println(yesterday);
System.out.println(date);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)