Java 需要获取字符串month作为int

Java 需要获取字符串month作为int,java,Java,我要通过“一月”、“二月”等等。。。作为数据库的整数,我需要在相应的月份中通过1-12,但我从日历中得到0-11 我就是这么做的,请帮我调整一下,把月份改为1-12个月,而不是0-11个月 //Get month as an integer. Date date = new SimpleDateFormat("MMM", Locale.ENGLISH).parse(stringMonth); Calendar cal = Calendar.getInstance(); cal.setTime(d

我要通过“一月”、“二月”等等。。。作为数据库的整数,我需要在相应的月份中通过1-12,但我从日历中得到0-11

我就是这么做的,请帮我调整一下,把月份改为1-12个月,而不是0-11个月

//Get month as an integer.
Date date = new SimpleDateFormat("MMM", Locale.ENGLISH).parse(stringMonth);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int month = cal.get(Calendar.MONTH);
System.out.println("month ==" + month);
这是因为类使用了
[0-11]

因此,要从
[1-12]
中获取索引,可以在获取的索引中添加1:-

int month = cal.get(Calendar.MONTH) + 1;
日历的月份为0索引(一月=0)。尽管上面的代码看起来很奇怪,但它在Java中很常见,因为日历中的月份索引非常奇怪

这篇文章讨论了这个主题:

要么改变:

int month = cal.get(Calendar.MONTH) + 1;

(但不要两者都做!)


这会在
int
表示的
月份中添加1的“偏移量”,从而将其从0-11移动到1-12=)

+1,将
[0,11]
的范围变为
[1,12]
您需要
+1
int month = cal.get(Calendar.MONTH) + 1;
System.out.println("month ==" + (month) + 1) ;