有没有什么好的方法得到当前日期的3个月前的日期,然后输出成20060724这样。
其实就是我知道今天日期了,怎么得到3个月前的日期呢?
求教,谢谢

解决方案 »

  1.   

    Date d = new Date();//todayCalendar c = Calendar.getInstance();
    c.setTime(d);c.add(Calendar.MONTH, 3);d = c.getTime();SimpleDateFormat sf= new SimpleDateFormat("yyyyMMdd");
    String day = sf.format(d);
      

  2.   

    kevinliuu(@。@) 兄弟,你得到的是三个月后的日期,哈哈,楼主说的三个月前的日期,应该这样:
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;public class text { public static void main(String[] args) {
    Date d = new Date();
    Calendar c = Calendar.getInstance();
    c.setTime(d);
    c.add(Calendar.MONTH, -3);
    d = c.getTime();
    SimpleDateFormat sf= new SimpleDateFormat("yyyyMMdd");
    String day = sf.format(d);
                      System.out.println(day); }}
      

  3.   

    上面的方法是对的,如果要进行极端考虑的话那就是一个28天,30天,31天之间的关系问题了。如果出现了上面的问题,java将把日期设定到下个月的1号,这也是可以理解的。我不知道 chuan122345(EJB冠军) 说的 “因为每个月时间不一样,如果要精确计算的话,这样做也不够准确”该怎么理解。
    上面给的例子如果是20060101的话,三个月前的日期就是20050901了,怎么会是20050101那?