5

可能重复:
如何使用 Java 日历从日期中减去 X 天?

这应该很容易回答,但我想知道:例如,如果您向日历添加 50 秒,而当前秒数为 20,它会添加 1 分钟并将秒数设置为 10,还是将秒数设置为70?这里有一些代码可以更好地说明我的意思:

Calendar cal;  
public void test(){  
cal.add(Calendar.SECOND, 50);  
}

因此,假设当该代码运行时,当前秒为 20,当前分钟为 10。它会变为 11 分 10 秒还是 10 分 70 秒?提前致谢。

4

2 回答 2

7

我没有尝试过,但我希望它会通过 1 分 10 秒。

...现在我试过了,显然得到了证实:

public class Test {

public static void main(String[] args) {
    Calendar cal = GregorianCalendar.getInstance();
    System.out.println("Minutes : "+ cal.get(Calendar.MINUTE));
    System.out.println("Seconds :" + cal.get(Calendar.SECOND));
    cal.add(Calendar.SECOND, 50);
    System.out.println("Minutes : "+ cal.get(Calendar.MINUTE));
    System.out.println("Seconds :" + cal.get(Calendar.SECOND));
}

}

打印到我的控制台:

Minutes : 11
Seconds :33
Minutes : 12
Seconds :23
于 2012-10-08T07:07:10.317 回答
0

您描述的时间只是它的格式。实际上,日期的值存储为long数字。通过使用适当的参数调用Calendar#add(type,value)方法,您只需向该数字添加/减去值long

该数字的 0 值表示posix 时间,1970 年 1 月 1 日

和值1349591726,表示格式化后2012-10-07 06:35:26Z

于 2012-10-08T07:25:25.873 回答