Метод календаря Java

#java #android

#java #Android

Вопрос:

Почему это продолжает возвращать 0?

 Calendar calendar = Calendar.getInstance();
calendar.get(Calendar.HOUR_OF_DAY)?
  

Комментарии:

1. Случайно, это не между 12:00 и 12: 59 утра в вашем часовом поясе?

2. Значение HOUR_OF_DAY находится в диапазоне от 0 до 24. Возможно, когда вы запускаете этот код, эквивалентное время равно 0. Вы пробовали запускать его в час?

Ответ №1:

Calendar.HOUR_OF_DAY будет равно 0 всякий раз, когда время суток падает между полуночью и часом ночи. Так что, скорее всего, либо это происходит в этом временном интервале, где бы вы ни находились, либо ваш эмулятор Android настроен так, что он думает, что вы находитесь в этом временном интервале.

Если это не так, вы могли бы попробовать установить час в некоторое произвольное значение, а затем получить его снова, чтобы проверить, работает ли оно. Для этого попробуйте:

 Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 5);
  

Ответ №2:

В идеале это не должно,

Попробуйте это

 Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.HOUR));
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
System.out.println(calendar.get(Calendar.MINUTE));
  

Ничего не отличается от того, что у вас есть, за исключением того, что я пытаюсь напечатать год, час, число дня, минуту.

Комментарии:

1. хммм … может быть, это мой эмулятор Android? Но, похоже, это работает нормально: calendar.get(Календарь. ДЕНЬ_ ИЗ_НЕДЕЛИ);