Java 对象日历做什么?

Java 对象日历做什么?,java,calendar,Java,Calendar,我对对象日历进行了测试: for (int i = 0; i < 11; i++) System.out.println(calendar.get(i)); output: 1 2011 6 28 2 6 187 4 1 1 10 for(int i=0;i

我对对象日历进行了测试:

for (int i = 0; i < 11; i++)
            System.out.println(calendar.get(i));


output:
1
2011
6
28
2
6
187
4
1
1
10
for(int i=0;i<11;i++)
System.out.println(calendar.get(i));
输出:
1.
2011
6.
28
2.
6.
187
4.
1.
1.
10
我的问题是这怎么可能发生?apicalendar也存在同样棘手的问题。
i
中的get()

表示一个字段,例如
年代
,等等

例如,
calendar.get(1)
calendar.get(calendar.YEAR)
等相同。
i
中的表示一个字段,例如
年代
,等等


例如,
calendar.get(1)
calendar.get(calendar.YEAR)
相同。我不知道问题出在哪里。您为提供的任何字段ID获取特定值的状态

您通常会使用字段常量来获取特定值(如
DAY\u OF_MONTH
MONTH
),但只要在
0..field\u COUNT
范围内,任何整数都可以

字段ID已记录(尽管将来可能会更改),因此您的特定值为:

ID  Value  Description
--  -----  -----------
 0      1  Era (BC/AD for Gregorian).
 1   2011  Year.
 2      6  Month (zero-based).
 3     28  Week-of-year.
 4      2  Week-of-month.
 5      6  Date/day-of-month.
 6    187  Day-of-year.
 7      4  Day-of-week.
 8      1  Day-of-week-in-month.
 9      1  AM/PM selector.
10     10  Hour.

那是公元2011年7月6日
10:00:00 PM
10:59:59 PM
之间的某个时间点。分和秒的值是字段ID 12和13,您的代码没有打印出来,因此时间不确定。

我不知道问题出在哪里。您得到的是特定值你提供的身份证

您通常会使用字段常量来获取特定值(如
DAY\u OF_MONTH
MONTH
),但只要在
0..field\u COUNT
范围内,任何整数都可以

字段ID已记录(尽管将来可能会更改),因此您的特定值为:

ID  Value  Description
--  -----  -----------
 0      1  Era (BC/AD for Gregorian).
 1   2011  Year.
 2      6  Month (zero-based).
 3     28  Week-of-year.
 4      2  Week-of-month.
 5      6  Date/day-of-month.
 6    187  Day-of-year.
 7      4  Day-of-week.
 8      1  Day-of-week-in-month.
 9      1  AM/PM selector.
10     10  Hour.

那是公元2011年7月6日
10:00:00 PM
10:59:59 PM
之间的某个时间点。分钟和秒值是字段ID 12和13,您的代码没有打印出来,因此时间不确定。

java.util.Calendar提供的API设计得不太好ion演示了。但是,请看一下。int值表示要获取其值的字段。请参阅该JavaDoc中列出的所有成员,这些成员被描述为“字段编号…”,例如.So
calendar.get(calendar.YEAR)
相当于
2011

java.util.Calendar所提供的API并不像您的困惑所说明的那样设计得很好。不过,请看一下。int值是用来表示您想要获取其值的字段的。请参阅该JavaDoc中列出的所有成员,这些成员被描述为“字段号…”例如.So
calendar.get(calendar.YEAR)
相当于
2011

对于许多常见的日期相关场景来说,Calendar类是一个过度的解决方案。历史记录如下:Date类被发现在处理日期对象时存在许多缺陷。因此引入了Calendar类。然而,Calendar类被证明是一个过度设计的解决方案与许多常见日期相关的场景相关


阅读Javadoc以更好地理解Calendar类。

Calendar类对于许多常见的与日期相关的场景来说是一种过火的行为。历史记录如下:Date类被发现有许多不足之处,即不能操作日期对象。因此引入了Calendar类。然而,Calendar类已经被证明是一种错误对于许多常见的日期相关场景来说,这是一个过度设计的解决方案

阅读Javadoc以更好地理解Calendar类