календарь против григорианского в Яве

1

Вот материал:

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
  • 1
    Эти константы являются ключами для Calendar.get(...) для возврата правильного значения свойства. У Java 8 есть более хороший API.
Теги:
date
time
calendar

1 ответ

3
Лучший ответ

Когда вы используете (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];
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню