日历类时间月份不匹配

Calendar c = Calendar.getInstance(); System.out.println("Mili->>" + c.getTimeInMillis()); System.out.println("Month ->>" + Calendar.MONTH); 

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

以下是输出

米利 – >> 1434029840778

月 – >> 2

你想要的是以下习语: c.get(Calendar.MONTH)

Calendar.MONTH本身只是一个内部常量,并且(希望)总是返回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

您正在显示Calendar.MONTH常量的值,因此为2。

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

此外 – 日历从0开始,如此处所述

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