Пытаюсь получить дату и время 12:00 в прошлый понедельник - у меня всегда получается 12:00.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Пытаюсь получить дату и время 12:00 в прошлый понедельник - у меня всегда получается 12:00.

Сообщение Anonymous »

Я пытаюсь вычислить объект Date последнего понедельника в 12 часов утра.
Вот мой код:

Код: Выделить всё

Calendar calendar = Calendar.getInstance()
calendar.setTime(currentDate)

Integer dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK)
if (dayOfWeek > Calendar.MONDAY) {
Integer daysDifferenceFromMonday = dayOfWeek - Calendar.MONDAY
calendar.add(Calendar.DATE, -daysDifferenceFromMonday)
} else if (dayOfWeek < Calendar.MONDAY) {
// it means that we are on Sunday and we need last sunday
Integer daysDifferenceFromMonday = 7 - (Calendar.MONDAY - dayOfWeek)
calendar.add(Calendar.DATE, -daysDifferenceFromMonday)
}

calendar.set(Calendar.MILLISECOND, 0)
calendar.set(Calendar.SECOND, 0)
calendar.set(Calendar.MINUTE, 0)
calendar.set(Calendar.HOUR, 0)
Date toDate = calendar.getTime()
Как видите, я устанавливаю час равным 0. Но Calendar.getTime() дает мне 12:00:00.
Вот скриншот отладчика.
Изображение

Что я делаю не так? Это очень просто.

Подробнее здесь: https://stackoverflow.com/questions/792 ... es-me-12pm
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»