比如今天是20140823 我想通过date类如何得到昨天20140822和前天20140821啊
------解决方案--------------------
import java.text.*;
import java.util.*;
public class Datetest {
public static void main(String[] args){
Calendar c = new GregorianCalendar();
Date d = c.getTime();
c.add(Calendar.DAY_OF_MONTH, 1);//今天的基础上加一天
Date d2 = c.getTime();
c.add(Calendar.DAY_OF_MONTH,1);//再加一天
Date d3 = c.getTime();
DateFormat df = new SimpleDateFormat("yyyyMMdd");
String str = df.format(d);
String str2 = df.format(d2);
String str3 = df.format(d3);
System.out.println(str);
System.out.println(str2);
System.out.println(str3);
}
}
这个应该就是你要的结果
------解决方案--------------------
如果不用Calendar类的话,可以用毫秒数计算的方法实现
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateTest {
/**
* 由今天时间通过Date类来计算昨天的时间
* @param args
*/
public static void main(String[] args) {
//先获取今天时间
Date today = new Date();
//得到当前时刻距离1970.1.1的毫秒数
long t1= today.getTime();
// System.out.println(t1);
//计算昨天时间:将当前时间毫秒数减去一天的毫秒数
Date yesterday = new Date();
long t2 = t1-24*60*60*1000;
yesterday.setTime(t2);
// System.out.println(yesterday);
String str1 =format(yesterday);
System.out.println("昨天时间:"+str1);
//计算前天的时间:同理
Date theDayBeforeYesterday = new Date();
long t3 = t2-24*60*60*1000;
theDayBeforeYesterday.setTime(t3);
// System.out.println(theDayBeforeYesterday);
String str2 =format(theDayBeforeYesterday);
System.out.println("前天时间:"+str2);
}
//将时间以字符串形式输出
public static String format(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String str =sdf.format(date);
return str;
}
}