日历 class 时间月份不匹配

Calendar class time month not matching

Calendar c = Calendar.getInstance();

System.out.println("Mili->>" + c.getTimeInMillis());

System.out.println("Month  ->>" + Calendar.MONTH);

虽然我得到正确的毫秒格式时间,但月份显示为 2(三月??)为什么这样?

下面是输出

Mili->>1434029840778

Month ->>2

您显示的是 Calendar.MONTH 常量的值,因此是 2。

您正在从一个实例中获取日历 c,但使用 Calendar 对象从月份获取日历,也从实例中获取它。

此外 - 日历从参考的 0 开始 here

在其他消息中,使用新的 DateTime API in Java 8 或 JODA 时间,它们更好。

你要的是下面的成语:c.get(Calendar.MONTH)

Calendar.MONTH 本身只是一个内部常量,并且(希望)将始终 return 2.

例子

// We're in June at the time of writing
// Months are 0-based so June == 5
Calendar c = Calendar.getInstance();
System.out.println(Calendar.MONTH);
System.out.println(c.get(Calendar.MONTH));

输出

2
5

另请参阅:API