Date fakeDate = sdf.parse("15/07/2013 11:00 AM");
Calendar calendar = Calendar.getInstance()
calendar.setTime(fakeDate);
int currentMonth = calendar.get(Calendar.MONTH);
我得到currentMonth == 6而不是7。
为什么会这样?
答案 0 :(得分:5)
因为Calendar.MONTH
是基于零的。 Why?
检查docs :(始终)
get和set的字段编号,表示月份。这是一个 特定于日历的值。 格里高利一年中的第一个月 朱利安日历是1月0日;最后取决于 一年中的月数。
答案 1 :(得分:2)
正如文档所说 - get和set的字段编号表示月份。这是特定于日历的值。格列高利历和朱利安历的一年中的第一个月是1月,即0;最后一个取决于一年中的月数。
所以尝试这样的事情
int currentMonth = calendar.get(Calendar.MONTH)+1;
由于
calendar.get(Calendar.MONTH)
将给你(currentMonthValue-1),因为1月的值从0开始
答案 2 :(得分:0)
应该是
int currentMonth = calendar.get(Calendar.MONTH)+1;