需要得到字符串月作为int
我传递“1月”,“2月”等...作为整数数据库我需要通过1-12相应的月份,但我得到0从-11日历需要得到字符串月作为int
这是林怎么做,请帮我捏捏这得到个月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);
回答:
int month = cal.get(Calendar.MONTH) + 1;
日历的一个月0索引(一月= 0)。就像上面的代码看起来那么奇怪,它在Java中很常见,因为Calendar中的月份索引相当奇怪。
这个帖子有这个话题的讨论:Why is January month 0 in Java Calendar
回答:
这是因为Calendar
类从[0-11]
使用Month
指数
因此,要从[1-12]
获得索引,您可以加1所获得的索引: -
int month = cal.get(Calendar.MONTH) + 1;
回答:
要么改变:
int month = cal.get(Calendar.MONTH) + 1;
或
System.out.println("month ==" + (month) + 1) ;
(但不要做他们两个!)
这会在您的month
的所代表的位置上添加1的“偏移量”,因此将它从0-11移到1-12 =)
以上是 需要得到字符串月作为int 的全部内容, 来源链接: utcz.com/qa/266938.html