Date类是按毫秒计算时间的,你可以直接计算出时间定义一个long类型然后加给Date。

解决方案 »

  1.   

    要转换成字符串使用DateFormat类就可以了
      

  2.   

    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);
    }
    }这个应该就是你要的结果
      

  3.   

    昨天和前天,应该是
    c.add(Calendar.DAY_OF_MONTH,-1);
      

  4.   

    如果不用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;
    }}