我想得到2008-01-01到2008-04-21的每一天
Date tempDate = new Date(qsDate.getTime() + 1000*60*60*24*j);
qsDate:为一个日期 比如说2008-01-01
j:是一个从1开始的数字。运行结果,运行发现,当tempDate增加为2008-01-25,再增加就变成2007-12-07,
[2008-01-01, 2008-01-02, 2008-01-03, 
2008-01-04, 2008-01-05, 2008-01-06, 
2008-01-07, 2008-01-08, 2008-01-09, 
2008-01-10, 2008-01-11, 2008-01-12, 
2008-01-13, 2008-01-14, 2008-01-15, 
2008-01-16, 2008-01-17, 2008-01-18, 
2008-01-19, 2008-01-20, 2008-01-21, 
2008-01-22, 2008-01-23, 2008-01-24, 
2008-01-25, 2007-12-07, 2007-12-08, 
2007-12-09, 2007-12-10, 2007-12-11, 
2007-12-12, 2007-12-13, 2007-12-14, 
2007-12-15, 2007-12-16, 2007-12-17, 
2007-12-18, 2007-12-19, 2007-12-20, 
2007-12-21, 2007-12-22, 2007-12-23, 
2007-12-24, 2007-12-25, 2007-12-26, 
2007-12-27, 2007-12-28, 2007-12-29, 
2007-12-30, 2007-12-31,]

解决方案 »

  1.   

    虽然不知道为什么会是这样,不过我一直用Calendar..
    import java.util.Calendar;public class Main {    public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.MONTH,0);
    cal.set(Calendar.DATE,1); while (true)
    { if (cal.get(Calendar.MONTH) == 3 && cal.get(Calendar.DATE) == 22)
    {
    break;
    } System.out.println(cal.getTime());
    cal.add(Calendar.DATE,1);
    }
        }
    }
      

  2.   

    这是 sun 的一个  bug 很早就讨论过。
    不过现在推荐使用 Calendar 
    Date 基本废弃。
      

  3.   


    package zhao;import javax.swing.*;import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.Toolkit;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    import java.util.logging.Logger;public class Test1 { 

    public static void main(String[] args) 

    String s = "2008-01-01到2008-04-21";
    Calendar c1 = Calendar.getInstance();
    c1.set(2008, 0, 1);

    Calendar c2 = Calendar.getInstance();
    c2.set(2008, 3, 21);
    int count = c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR);
    for(int i=0;i<count;i++) {
    System.out.println(c1.get(Calendar.YEAR)+"-"+(c1.get(Calendar.MONTH)+1)+"-"+c1.get(Calendar.DATE));

    c1.add(Calendar.DATE, 1);
    }



      

  4.   

    嗯.之前使用memcache的时候设置超时时间的时候也碰到过这个问题. 
    后来发现是我们设置的时间叠加溢出了...