從文本格式解析您的日期:
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = formatter.parse("30/11/2012");
更多信息:SimpleDateFormat doc
從你的約會。減去天:
public static Date substractDays(Date date, int days)
{
long millis = date.getTime();
long toSubstract = days * 1000 * 60 * 60 * 60 * 24;
// 1milli 1s 1m 1h 1d
return new Date(millis-toSubstract);
}
添加一些日子會是一樣的,除了替換 - 用+
取回String
表示從Date對象離子:
DateFormat formatter = new SimpleDateFormat("...pattern...");
String formatedDate = formatter.format(date.getTime());
編輯:
你也可以做添加/你建議的方法從其減去日期:
public static Date substractDays(Date date, int days)
{
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, -20 /*or +10*/);
return calendar.getTime();
}
如果你想檢查是否日期是在一個區間內,那麼:
public static boolean isInInterval(Date date, Date from, Date to)
{
return date.getTime()<to.getTime() && date.getTime() > from.getTime();
}
第二個問題就是說我想檢查我的當前系統日期是否在excelMinus20和excelPlus10日期之間,在這種情況下,我會根據業務邏輯採取適當的代碼操作。另外,我已經看到使用天* 1000 * 60 * 60 * 60 * 24;有時會給出不正確的結果,因此我使用了Calendar.add(Day_Of_Year,-20)來減去日期 - 20天。讓我知道,如果這很好。 –
你好!我從來沒有任何手動計算毫秒的問題,但你可能是對的。如果是這樣,那麼看到我更新的答案。 –