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