我想将某个日期增加1天.我创建一个Calendar对象,如:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2012);
cal.set(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 31);
Run Code Online (Sandbox Code Playgroud)
然后,为了增加它1天,我可以做两件事:
cal.add(Calendar.DAY_OF_MONTH, 1);
Run Code Online (Sandbox Code Playgroud)
要么
cal.add(Calendar.DAY_OF_YEAR, 1);
Run Code Online (Sandbox Code Playgroud)
还有其他"DAY"常量,但是我使用上述两种增加1的方法得到相同的结果.在这种情况下,我会得到两个不同的结果吗?
Evg*_*eev 49
添加它真的没什么区别,但是这个
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println(c.get(Calendar.DAY_OF_YEAR));
Run Code Online (Sandbox Code Playgroud)
版画
28
363
Run Code Online (Sandbox Code Playgroud)
Pao*_*gia 17
Calendar.add
根据日历的规则,将指定的时间量添加或减去给定的日历字段.
这里有一个可以添加或减去的日历字段列表:
MILLISECOND
是0到999之间的毫秒数
SECOND
是0到59之间的秒数
MINUTE
是0到59之间的分钟数
HOUR
是0到11之间的小时数
HOUR_OF_DAY
是0到23之间的小时数
DAY_OF_WEEK
是1到7周之间的一天
DAY_OF_MONTH
是1到31之间的相关日期
DAY_OF_YEAR
是1到365之间年份的日子
WEEK_OF_MONTH
是从1开始的月份的一周
WEEK_OF_YEAR
是从1开始的一年中的一周
MONTH
是0到11之间年份的月份
YEAR
是从1开始的年数
小时,天和周有多个字段,但您选择哪一个并不重要1.例如,使用-8 for DAY_OF_WEEK
将起作用.
calendar.add(Calendar.DAY_OF_MONTH, -2); // subtract 2 days
calendar.add(Calendar.DAY_OF_WEEK, -2); // subtract 2 days
calendar.add(Calendar.DAY_OF_YEAR, -2); // subtract 2 days
calendar.add(Calendar.YEAR, -2); // subtract 2 years
Run Code Online (Sandbox Code Playgroud)
1 仅使用,与其他操作无关,结果可能不同.Calendar.add
调用add时没有任何区别.然而,吸气剂返回不同的结果:D
来自的代码片段 GregorianCalendar#add
case DAY_OF_MONTH: // synonym of DATE
case DAY_OF_YEAR:
case DAY_OF_WEEK:
break;
Run Code Online (Sandbox Code Playgroud)
DAY_OF_YEAR
Run Code Online (Sandbox Code Playgroud)
获取和设置的字段编号,指示当前年份中的日期编号
DAY_OF_MONTH
Run Code Online (Sandbox Code Playgroud)
get和set的字段编号,表示该月的某一天.这是DATE的同义词
如果日期大于31,您将看到差异.