Java 中日期格式的公历日历

Java 中日期格式的公历日历,java,calendar,date-formatting,gregorian-calendar,Java,Calendar,Date Formatting,Gregorian Calendar,我只是想知道是否有人能帮我解决我的问题,尝试做一个中期日期格式的公历。我不确定这是否是最好的方法,但是我无法在println语句中获得输出 Calendar calendar = new GregorianCalendar(); calendar.set(Calendar.YEAR, 1999); calendar.set(Calendar.MONTH, 12); calendar.set(Calendar.DAY_OF_MONTH, 25) 另一次尝试是 SimpleDateFormat

我只是想知道是否有人能帮我解决我的问题,尝试做一个中期日期格式的公历。我不确定这是否是最好的方法,但是我无法在println语句中获得输出

Calendar calendar = new GregorianCalendar();
calendar.set(Calendar.YEAR, 1999);
calendar.set(Calendar.MONTH, 12);  
calendar.set(Calendar.DAY_OF_MONTH, 25)
另一次尝试是

SimpleDateFormat date = new SimpleDateFormat("MMM dd yyyy");
Calendar calendar = new GregorianCalendar();

我基本上希望打印输出看起来像1999年12月25日。

月份是以零指数为基础的,因此如果要设置12月,必须使用

calendar.set(Calendar.MONTH, 11);
而不是

calendar.set(Calendar.MONTH, 12);
下面是我的代码示例:

public static void main(String[] args) {
    Calendar calendar = new GregorianCalendar();
    calendar.set(Calendar.YEAR, 1999);
    calendar.set(Calendar.MONTH, 11);
    calendar.set(Calendar.DAY_OF_MONTH, 25);
    Date date = calendar.getTime();
    SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy");
    String formattedDate = sdf.format(date);
    System.out.println(formattedDate);
}
这应该有助于:

public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, 1999);
    cal.set(Calendar.MONTH, Calendar.DECEMBER);
    cal.set(Calendar.DAY_OF_MONTH, 12);

    DateFormat dateFormat = new SimpleDateFormat("MMM dd yyyy");
    System.out.println(dateFormat.format(cal.getTime()));
}

我可以看出这有助于解决我的问题。非常感谢你。但是为了学习,如果公历已经定义了该日期,并且我必须以相同的格式输出它,那么该如何操作,而不是使用cal.set来设置年、月、日?您可以跳过Calendar init部分。SimpleDataFormatter需要日期对象,因此日历是完全可选的。由于GregorianCalendar是一个日历,因此您将使用.getTime()方法返回日期。这是一个月中的一天,而不是一个月!一个月以来,我一直使用Calendar.DECEMBER来避免这种混乱。请仔细阅读,或者更好的做法是,在评论或否决之前尝试解决方案。是的,你是对的。不幸的是,我无法撤销我的否决票。因此,为了学习,如果我想把它放到一个toString中,我会简单地。DateFormat DateFormat=新的简化格式(“MMM dd yyyy”);return(“圣诞节日期:+DateFormat.format(cal.getTime()));