Вот материал:
http://www.javalaunch.com/Java-Date-Calender-time-2.html
Любой может сказать мне, что является логикой этого Calendar.YEAR и calender.get(Calendar.YEAR). Фактически я не понимаю этого.
System.out.println("Year: " + Calendar.YEAR);
System.out.println("month: " + Calendar.MONTH);
System.out.println("dayOfMonth: " + Calendar.DAY_OF_MONTH); // Jan = 0, not 1
System.out.println("dayOfWeek: " + Calendar.DAY_OF_WEEK);
System.out.println("weekOfYear: " + Calendar.WEEK_OF_YEAR);
System.out.println("weekOfMonth: " + Calendar.WEEK_OF_MONTH);
System.out.println("hour: " + Calendar.HOUR); // 12 hour clock
System.out.println("hourOfDay: " + Calendar.HOUR_OF_DAY); // 24 hour clock
System.out.println("minute: " + Calendar.MINUTE);
System.out.println("second: " + Calendar.SECOND);
System.out.println("millisecond: " + Calendar.MILLISECOND);
System.out.println("...................................................................................");
Calendar calender = new GregorianCalendar();
System.out.println("Year: " + calender.get(Calendar.YEAR));
System.out.println("month: " + calender.get(Calendar.MONTH));
System.out.println("dayOfMonth: " + calender.get(Calendar.DAY_OF_MONTH)); // Jan = 0, not 1
System.out.println("dayOfWeek: " + calender.get(Calendar.DAY_OF_WEEK));
System.out.println("weekOfYear: " + calender.get(Calendar.WEEK_OF_YEAR));
System.out.println("weekOfMonth: " + calender.get(Calendar.WEEK_OF_MONTH));
System.out.println("hour: " + calender.get(Calendar.HOUR)); // 12 hour clock
System.out.println("hourOfDay: " + calender.get(Calendar.HOUR_OF_DAY)); // 24 hour clock
System.out.println("minute: " + calender.get(Calendar.MINUTE));
System.out.println("second: " + calender.get(Calendar.SECOND));
System.out.println("millisecond: " + calender.get(Calendar.MILLISECOND));
Вывод:
Year: 1
month: 2
dayOfMonth: 5
dayOfWeek: 7
weekOfYear: 3
weekOfMonth: 4
hour: 10
hourOfDay: 11
minute: 12
second: 13
millisecond: 14
...................................................................................
Year: 2014
month: 11
dayOfMonth: 24
dayOfWeek: 4
weekOfYear: 52
weekOfMonth: 4
hour: 11
hourOfDay: 11
minute: 51
second: 54
millisecond: 687
Когда вы используете (Calendar.YEAR, Calendar.MONTH),
это статические поля в Calendar class
и если вы печатаете их, они будут печатать значения по умолчанию для этих полей.
В случае
Calendar calendar = new GregorianCalendar();
это создаст новый экземпляр календаря с текущими значениями времени и даты, и вы используете эти статические конечные переменные, чтобы получить это конкретное значение из только что созданного экземпляра календаря.
вы можете проверить документацию для Calender здесь
ОБНОВИТЬ
Ниже приведен код для метода get, когда вы передаете эти статические поля для получения метода, он вернет значение для этого поля из массива полей для этого индекса.
public int get(int field)
{
complete();
return internalGet(field);
}
protected final int internalGet(int field)
{
return fields[field];
}
Calendar.get(...)
для возврата правильного значения свойства. У Java 8 есть более хороший API.