Дата Java отключила информацию времени

У меня есть объект Даты Java, содержащий информацию о дате и времени. Я хочу записать метод, который отключает информацию времени, усекает мелкие секунды часов, таким образом, я только имею дату в запасе.

Пример ввел:

2008-01-01 13:15:00

Ожидаемый вывод:

2008-01-01 00:00:00

У Вас есть подсказка? Я пытался делать что-то вроде этого:

(timestamp / (24 * 60 * 60 * 1000)) * (24 * 60 * 60 * 1000)

но я столкнулся с проблемами с часовым поясом.

110
задан Basil Bourque 28 March 2018 в 00:13
поделиться

5 ответов

Рекомендуемый способ манипулирования датой / временем - использовать объект Calendar :

Calendar cal = Calendar.getInstance(); // locale-specific
cal.setTime(dateObject);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
long time = cal.getTimeInMillis();
168
ответ дан 24 November 2019 в 03:06
поделиться

Используйте метод set () класса Calendar , чтобы обнулить поля HOUR_OF_DAY, MINUTE, SECOND и MILLISECOND .

2
ответ дан 24 November 2019 в 03:06
поделиться
Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
date = cal.getTime();
26
ответ дан 24 November 2019 в 03:06
поделиться

Вы смотрели на Joda ? Это намного более простой и интуитивно понятный способ работы с датой и временем. Например, вы можете тривиально конвертировать между (скажем) LocalDateTime и LocalDate объектами.

например (для иллюстрации API)

LocalDate date = new LocalDateTime(milliseconds).toLocalDate()

Кроме того, он решает некоторые проблемы безопасности потоков с датой / time formatters и настоятельно рекомендуется для работы с любыми проблемами даты / времени в Java.

41
ответ дан 24 November 2019 в 03:06
поделиться

Вы смотрели на метод усечения DateUtils в Apache Commons Lang?

Date truncatedDate = DateUtils.truncate(new Date(), Calendar.DATE);

удалит элемент времени.

138
ответ дан 24 November 2019 в 03:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: