Java 使用日历显示设置的日期。输出已关闭。我不知道为什么

Java 使用日历显示设置的日期。输出已关闭。我不知道为什么,java,Java,我不明白为什么我设置的日期(2013、01、21)的输出显示为: 2月21日星期四23:05:18 GMT2013。这里的输出不是一月,而是二月 import java.util.Date; import java.util.Calendar; import java.util.GregorianCalendar; public class date { public static void main(String[] args) { Calendar myCal = Calend

我不明白为什么我设置的日期(2013、01、21)的输出显示为: 2月21日星期四23:05:18 GMT2013。这里的输出不是一月,而是二月

import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class date {

public static void main(String[] args) {

    Calendar myCal = Calendar.getInstance();
    myCal.set(2013,01,21);
    Date bestBeforeDate = myCal.getTime();
    System.out.println(bestBeforeDate);

因为在Java中月份的范围是0-11,0是一月,1是二月

:

在公历和儒略历中,一年的第一个月是1月,即0;最后一个取决于一年中的月数


解决方法是使用每月命名的常量等。更好的方法是使用java.util.Date/Calendar来代替。