我正在传递“Jan”,“Feb”等...作为数据库的整数,我需要在相应的月份传递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 :(得分:9)
int month = cal.get(Calendar.MONTH) + 1;
日历的月份为0索引(Jan = 0)。与上面的代码看起来一样奇怪,它在Java中很常见,因为Calendar中的月份索引相当奇怪。
这篇文章讨论了这个主题:Why is January month 0 in Java Calendar
答案 1 :(得分:1)
那是因为Calendar
班级使用[0-11]
Month
索引
因此,要从[1-12]
获取索引,您可以将1添加到获得的索引中: -
int month = cal.get(Calendar.MONTH) + 1;
答案 2 :(得分:1)
要么改变:
int month = cal.get(Calendar.MONTH) + 1;
或
System.out.println("month ==" + (month) + 1) ;
(但不要两者兼顾!)
这会为month
所代表的int
添加1的“偏移量”,从而将其从0-11更改为1-12 =)