gpt4 book ai didi

java - GregorianCalendar.set(field, value + 1) 与 GregorianCalendar.add(field, 1) 相同吗

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:55 24 4
gpt4 key购买 nike

对于以下代码片段

GregorianCalendar a = new GregorianCalendar(2009, 11, 10);
System.out.println(a.getTime()); // Thu Dec 10 00:00:00 ICT 2009
a.add(Calendar.MONTH, 1);
System.out.println(a.getTime()); // Sun Jan 10 00:00:00 ICT 2010

当我改变这一行

a.add(Calendar.MONTH, 1);

进入这一行

a.set(Calendar.MONTH, a.get(Calendar.MONTH) + 1);

返回相同的结果

// Sun Jan 10 00:00:00 ICT 2010

如果是 2009 年 12 月,我想将其设置为月份 + 1(即一月),该月份现在应该是 2009 年 1 月。但实际上是 2010 年 1 月。

那么,在这种情况下 set 和 add 有什么区别?

最佳答案

Calendar#add(int field, int amount)将日历增加指定的量。就您而言,它会增加一个月。

Calentar#set(int field, int value)将某个字段设置为指定值,而其他字段保持不变。在您的情况下,它将月份设置为一月。

另请参阅:

Calendar#roll(int field, int value)将指定字段增加指定值,但保持较高字段(在您的情况下为年份)不变(2010 年 10 月 + 4 个月 => 2010 年 2 月)

关于java - GregorianCalendar.set(field, value + 1) 与 GregorianCalendar.add(field, 1) 相同吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13005467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com