Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在使用java日历进行解析时会出现错误的月份_Java_Timer_Calendar - Fatal编程技术网

为什么在使用java日历进行解析时会出现错误的月份

为什么在使用java日历进行解析时会出现错误的月份,java,timer,calendar,Java,Timer,Calendar,我得到currentMonth==6,而不是7 为什么会这样?因为日历。月份是以零为基础的 检查:(始终) 表示月份的get和set字段号。这是一个 日历特定值公历年的第一个月 朱利安历法是一月,也就是0;最后一个取决于 一年中的月数 应该是 int currentmount=calendar.get(calendar.MONTH)+1如文档所述-用于get和set的字段编号,指示月份。这是特定于日历的值。在公历和儒略历中,一年的第一个月是1月,即0;最后一个取决于一年中的月数 所以试试这样吧

我得到currentMonth==6,而不是7


为什么会这样?

因为
日历。月份是以零为基础的

检查:(始终)

表示月份的get和set字段号。这是一个 日历特定值公历年的第一个月 朱利安历法是一月,也就是0;最后一个取决于 一年中的月数

应该是

int currentmount=calendar.get(calendar.MONTH)+1

如文档所述-用于get和set的字段编号,指示月份。这是特定于日历的值。在公历和儒略历中,一年的第一个月是1月,即0;最后一个取决于一年中的月数

所以试试这样吧

Date fakeDate = sdf.parse("15/07/2013 11:00 AM");
Calendar calendar = Calendar.getInstance()
calendar.setTime(fakeDate);
int currentMonth = calendar.get(Calendar.MONTH);
因为
calendar.get(calendar.MONTH)
会给你(currentMonthValue-1),因为一月的值从0开始,但是为什么呢?你的回答对OP没有帮助,请详细说明以获得我的+1。@Maroun Maroun你速度很快+1.谢谢你的快速回答。虽然问题已经得到了回答,但最好的解决办法是放弃过时的
日历
类,改为使用。和它一起工作是如此的美好,它和人类一样计算月数。
int currentMonth = calendar.get(Calendar.MONTH)+1;