在我的代码中为什么Java Date或Calendar中的月份日期不同?

时间:2014-08-14 07:32:35

标签: java date calendar

这是我的代码。

Calendar calendar= Calendar.getInstance();
    System.out.println("Calender: "+calendar);
    System.out.println("Calender Date: "+calendar.DAY_OF_MONTH);
    System.out.println("Date: "+new Date().getDate());

输出:

enter image description here

在红色框日历显示DAY_OF_MONTH=14,但calendar.DAY_OF_MONTH显示5

6 个答案:

答案 0 :(得分:4)

Calendar.DAY_OF_MONTH是一个constant value,它指向月日字段。

要获得实际值,您需要致电:

calendar.get(Calendar.DAY_OF_MONTH)

答案 1 :(得分:4)

你在这里打印什么

System.out.println("Calender Date: "+calendar.DAY_OF_MONTH);

是常量DAY_OF_MONTH的值

获取值的正确方法是calendar.get(Calendar.DAY_OF_MONTH)

答案 2 :(得分:3)

calendar.DAY_OF_MONTH只是一把钥匙。来自Calendar的DAY_OF_MONTH来自calendar.get(Calendar.DAY_OF_MONTH)

答案 3 :(得分:2)

是的,因为您正在访问DAY_OF_MONTH的常量字段值,而不是实际的某一天。

答案 4 :(得分:1)

您应该使用calendar.get(Calendar.DAY_OF_MONTH)代替。您当前正在Calendar类中打印出一个常量,用于获取给定实例中的字段值。

答案 5 :(得分:1)

System.out.println("日历日期:" + calendar.DAY_OF_MONTH);

您只需从日历

获取DAY_OF_MONTH的常量字段值

它不是实际的一天,所以你会得到两个不同的结果,

如果您想获得实际的某一天,可以这样做:

calendar.get(的日历 .DAY_OF_MONTH)