Редактировать: Я должен добавить, что это наносекунды, а не миллисекунды.
Я чувствую, что эти ответы на самом деле не отвечают на вопрос, используя Java 8 SE Date and Time API, как и предполагалось. Я считаю, что метод truncatedTo является решением здесь.
LocalDateTime now = LocalDateTime.now();
System.out.println("Pre-Truncate: " + now);
DateTimeFormatter dtf = DateTimeFormatter.ISO_DATE_TIME;
System.out.println("Post-Truncate: " + now.truncatedTo(ChronoUnit.SECONDS).format(dtf));
Выход:
Pre-Truncate: 2015-10-07T16:40:58.349
Post-Truncate: 2015-10-07T16:40:58
В качестве альтернативы, при использовании часовых поясов:
LocalDateTime now = LocalDateTime.now();
ZonedDateTime zoned = now.atZone(ZoneId.of("America/Denver"));
System.out.println("Pre-Truncate: " + zoned);
DateTimeFormatter dtf = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
System.out.println("Post-Truncate: " + zoned.truncatedTo(ChronoUnit.SECONDS).format(dtf));
Выход:
Pre-Truncate: 2015-10-07T16:38:53.900-06:00[America/Denver]
Post-Truncate: 2015-10-07T16:38:53-06:00
использовать другой форматер? – markspace
в вашем примере нет наносекунд, и даже если бы была такая точность: в большинстве операционных систем временные ограничения ниже 1 мс не имеют смысла/буквально невозможны, все, что вы получаете, - это случайный шум, выраженный в цифрах. Вы можете COUNT PROCESSOR-TICKS, хотя ... – specializt