以下是我用来访问过去10天前的日期的代码.输出是'20130103',这是今天的日期.我怎样才能返回今天的日期 - 10天?我限制使用内置的java日期类,所以不能使用joda时间.
package past.date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class PastDate {
public static void main(String args[]){
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
Date myDate = new Date(System.currentTimeMillis());
Date oneDayBefore = new Date(myDate.getTime() - 10);
String dateStr = dateFormat.format(oneDayBefore);
System.out.println("result is "+dateStr);
}
}
Run Code Online (Sandbox Code Playgroud)
Per*_*ror 14
你可以用Calender的方法来操纵日期.
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
Date myDate = new Date(System.currentTimeMillis());
System.out.println("result is "+ dateFormat.format(myDate));
Calendar cal = Calendar.getInstance();
cal.setTime(myDate);
cal.add(Calendar.DATE, -10);
System.out.println(dateFormat.format(cal.getTime()));
Run Code Online (Sandbox Code Playgroud)
这条线
Date oneDayBefore = new Date(myDate.getTime() - 10);
Run Code Online (Sandbox Code Playgroud)
将日期设置为10毫秒,而不是10天.最简单的解决方案是在10天内减去毫秒数:
Date tenDaysBefore = new Date(myDate.getTime() - (10 * 24 * 60 * 60 * 1000));
Run Code Online (Sandbox Code Playgroud)