LocalDateTime удаляет миллисекунды
Я работаю в java-приложении, где я использую Java 8.
Я интегрировал базу данных (несколько баз данных Oracle, Mysql, Postgres) и где в DB я строю созданную дату.
формат даты в БД - 2015-07-29 16: 23: 28.143
Я извлекаю это из БД и устанавливаю в объекте Localdatetime
myObj.setCreated(rs.getTimestamp("created").toLocalDateTime());
Итак, проблема заключается в том, что я не хочу показывать/отправлять миллисекунду в ответе. я хочу показать/отправить дату, например 2015-07-29 16:23:28
Я пробовал форматтер, но он терпит неудачу, поскольку он дает строку, и я не хочу менять объект LocalDateTime на String, поскольку это приведет к серьезным изменениям во всех приложениях Java. Поэтому нужно найти решение
Может ли кто-нибудь знать какое-либо решение по этому поводу.
Ответы
Ответ 1
Просто установите для них значение 0
:
myObj.setCreated(rs.getTimestamp("created").toLocalDateTime().withNano(0));
Пример/доказательство:
import java.time.LocalDateTime;
public class DateTimeSample {
public static void main(String[] args) {
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);
System.out.println(ldt.withNano(0));
}
}
Вывод:
2015-07-30T16:29:11.684
2015-07-30T16:29:11
Ответ 2
Вы можете попробовать это, чтобы удалить что-нибудь меньшее, чем секунды
ldt = ldt.truncatedTo(ChronoUnit.SECONDS);