2

我将“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);
4

3 回答 3

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

日历的月份是 0 索引的 (Jan = 0)。尽管上面的代码看起来很奇怪,但它在 Java 中很常见,因为 Calendar 中月份的索引相当奇怪。

这篇文章讨论了这个话题:为什么Java日历中的一月是0月

于 2012-10-26T14:56:25.910 回答
1

那是因为Calendar类使用Month索引[0-11]

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

int month = cal.get(Calendar.MONTH) + 1;
于 2012-10-26T14:55:58.297 回答
1

要么改变:

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

或者

System.out.println("month ==" + (month) + 1) ;

(但不要两者都做!)

这会将 1 的“偏移量”添加到month由 表示的 ' 中int,从而将其从 0-11 转移到 1-12 =)

于 2012-10-26T14:57:07.330 回答