Java日历对象减去一个月
我正在尝试通过以下操作填充日历对象:Java日历对象减去一个月,java,date,calendar,Java,Date,Calendar,我正在尝试通过以下操作填充日历对象: Date now = new Date(System.currentTimeMillis()); Calendar cal = Calendar.getInstance(); cal.setTime(now); 现在是2013年11月26日,但当我打印出来 cal.get(Calendar.MONTH) 它将返回10 如何修复此问题?您不需要修复它。这是日历行为 您使用的是当前月份的System.currentTimeMillis() 返回10
Date now = new Date(System.currentTimeMillis());
Calendar cal = Calendar.getInstance();
cal.setTime(now);
现在是2013年11月26日,但当我打印出来
cal.get(Calendar.MONTH)
它将返回10
如何修复此问题?您不需要修复它。这是
日历
行为
您使用的是当前月份的System.currentTimeMillis()
返回10
,因为月份从0
开始。所以10是第11个月。即Nov
0-Jan
1-Feb
-
-
参见
表示月份的get和set字段号。这是特定于日历的值。在公历和儒略历法中,一年的第一个月是1月,也就是0
cal.get(日历月)+1
-编号从0开始您打印的是正确的
cal.get(Calendar.MONTH)
如果月份是
JAN
,它将打印0
,因此对于NOV
,10
使用为月份定义的日历
常量:
if(cal.get(Calendar.MONTH) == Calendar.NOVEMBER)
System.out.println("It's November.");
日历的月份字段是基于零的,就像数组索引一样。相反,2.3库提供了一个合理的月份编号。例如,December=12
System.out.println(“今天的月号:+new org.joda.time.DateTime(2013,12,28,19,0,0).getMonthOfYear());
当运行时
今天的月数:12
你为什么不看看日历
课程的文档呢?如果要向用户显示月数,或将其写入文件,则应使用SimpleDateFormat
。Calendar.get
返回的数字实际上仅供内部使用,因此您可以将它们与Calendar.sevent
进行比较。