11月1日..
Calendar.getInstance().get(Calendar.MONTH); // prints 10 (October)
如果我们从0开始是有意义的,但似乎我们没有
Calendar.getInstance().get(Calendar.JANUARY); // prints 1
我缺少什么?
答案 0 :(得分:23)
Java Calendar 中的月份 0索引。 Calendar.JANUARY
不是字段,因此您不应将其传递给get
方法。
答案 1 :(得分:14)
正如其他人所说Calendar.MONTH返回int并被归零。
以String
使用SimpleDateFormat.format()
方法获取当前月份
Calendar cal = Calendar.getInstance();
System.out.println(new SimpleDateFormat("MMM").format(cal.getTime()));
returns NOV
答案 2 :(得分:12)
Calendar.getInstance().get(Calendar.MONTH);
是零基础,10是11月。来自javadoc;
public static final int MONTH get和set的字段编号表示月份。这是一个 特定于日历的值。格里高利一年中的第一个月 朱利安的日历是1月1日,是0;最后取决于 一年中的月数。
Calendar.getInstance().get(Calendar.JANUARY);
不是明智之举,JANUARY
的值为0,与ERA
相同,您实际上是在调用;
Calendar.getInstance().get(Calendar.ERA);
答案 3 :(得分:3)
Calendar.get
将参数作为标准日历字段之一,例如YEAR
或MONTH
,而不是月份名称。
Calendar.JANUARY
为0,也是Calendar.ERA
的值,因此Calendar.getInstance().get(0)
将返回时代,在本例中为Calendar.AD
,即1。
对于问题的第一部分,请注意,正如文件记载的那样,月份从0开始,所以10个实际上是11月。
答案 4 :(得分:2)
import java.util.*;
class GetCurrentmonth
{
public static void main(String args[])
{
int month;
GregorianCalendar date = new GregorianCalendar();
month = date.get(Calendar.MONTH);
month = month+1;
System.out.println("Current month is " + month);
}
}
答案 5 :(得分:1)
使用Calendar.getInstance().get(Calendar.MONTH)+1
获取当月。