您应该使用日历:
Calendar date = new GregorianCalendar(2011, Calendar.JULY, 3);
date.add(Calendar.DAY_OF_MONTH, -7);
System.out.println(date.getTime());
您也可以从日期创建日历:
Date date1 = new Date(111, Calendar.JULY, 3);//the year field adds 1900 on to it.
Calendar date = new GregorianCalendar();
date.setTime(date1);
date.add(Calendar.DAY_OF_MONTH, -7);
date2 = date.getTime();
请注意:
- Java 使用 0 来表示 1 月 !
- 日期(年,月,日)自JDK版本1.1起已弃用!
请参阅 GregorianCalendar JavaDoc:
构造一个公历日历,其给定日期设置为默认时区和默认区域设置。参数:年份 用于在日历中设置 YEAR 日历字段的值。month 用于在日历中设置 MONTH 日历字段的值。月份值为 0。例如,0 表示 1 月。dayOfMonth 用于在日历中设置DAY_OF_MONTH日历字段的值。