Java 日历日期错误

2022-01-11 00:00:00 date calendar simpledateformat java

谁能帮我理解为什么我得到不同的月份值

Can anyone please help me understand why I am getting different month values for

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");    
System.out.println(dateFormat.format(cal.getTime()) 
                   + "--" 
                   + cal.get(Calendar.MONTH));

令人惊讶的显示

09/09/2012--8

推荐答案

Calendar 类,MONTH 从索引 0 开始.因此,January 为 0,February 为 1,因此 September 为 8.

In Calendar class, MONTH start from index 0. So, January is 0, February is 1, and hence September is 8.

PS:-确实这是Calendar类中的Inconsistency,所以我建议你看看Joda-Time API 打造您的生活处理日期时间数据时更容易.

P.S.: - That's true that this is an Inconsistency in Calendar class, so I would suggest you to take a look at Joda-Time API to make your life easier while working with date-time data.

相关文章