在循环中将时间增加1秒



这里有一个简单的测试:我试图在循环中将当前时间戳增加1秒。输出不是我所期望的。

public class TimeTest {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        for (int i = 0; i < 10; i++) {
            cal.add(Calendar.SECOND, i);
            System.out.println("Updated  = " + cal.getTime());
        }
    }
}

我得到的不是整齐的1秒增量,而是从5秒到1秒之间的任何增量。

Updated  = Mon May 13 15:12:45 PDT 2013
Updated  = Mon May 13 15:12:46 PDT 2013
Updated  = Mon May 13 15:12:48 PDT 2013
Updated  = Mon May 13 15:12:51 PDT 2013
Updated  = Mon May 13 15:12:55 PDT 2013
Updated  = Mon May 13 15:13:00 PDT 2013
Updated  = Mon May 13 15:13:06 PDT 2013
Updated  = Mon May 13 15:13:13 PDT 2013
Updated  = Mon May 13 15:13:21 PDT 2013
Updated  = Mon May 13 15:13:30 PDT 2013

您希望在每个for循环迭代中添加1而不是i

cal.add(Calendar.SECOND, 1);
cal.add(Calendar.SECOND, 1);

只需将日历增加1秒,而不是i秒

最新更新