我有一个String过期日期.但我需要在过期日期前一天执行一些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();
}
Run Code Online (Sandbox Code Playgroud)
然后,我得到一个if语句来执行SQL语句:
if(expiredDate.equals(currentDate)){
promptExtensionDialog();
}
Run Code Online (Sandbox Code Playgroud)
我想要实现的是if语句,而不是expiredDate本身,我需要在过期日期前一天获得并与当前日期进行比较.我想知道如何实现这个目标?
提前致谢.
编辑
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();
Run Code Online (Sandbox Code Playgroud)
这将返回下一个日期而不是上一个日期.你有什么想法?
Ser*_*gio 10
使用Java(pre-8)内置的Date和Time API会让你活着.使用JodaTime进行复杂的DateTime操作.
前一天就像这样简单.
DateTime dateTime = new DateTime();
System.out.println(dateTime);
System.out.println(dateTime.minusDays(1));
Run Code Online (Sandbox Code Playgroud)
如果您不想要任何外部库:
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);
Run Code Online (Sandbox Code Playgroud)