Nik*_*las 14 java rounding localtime datetime-format java-time
使用java.time框架,我想以格式打印时间hh:mm:ss
,但是以格式LocalTime.now()
给出时间hh:mm:ss,nnn
.我试着用DateTimeFormatter
:
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_TIME;
LocalTime time = LocalTime.now();
String f = formatter.format(time);
System.out.println(f);
Run Code Online (Sandbox Code Playgroud)
结果:
22:53:51.894
Run Code Online (Sandbox Code Playgroud)
如何从时间中删除毫秒?
dem*_*4dx 34
编辑:我应该补充说,这些是纳秒而不是毫秒.
我觉得这些答案并没有真正回答使用Java 8 SE日期和时间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));
Run Code Online (Sandbox Code Playgroud)
输出:
Pre-Truncate: 2015-10-07T16:40:58.349
Post-Truncate: 2015-10-07T16:40:58
Run Code Online (Sandbox Code Playgroud)
或者,如果使用时区:
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));
Run Code Online (Sandbox Code Playgroud)
输出:
Pre-Truncate: 2015-10-07T16:38:53.900-06:00[America/Denver]
Post-Truncate: 2015-10-07T16:38:53-06:00
Run Code Online (Sandbox Code Playgroud)
小智 18
减少到几分钟:
localTime.truncatedTo(ChronoUnit.MINUTES);
Run Code Online (Sandbox Code Playgroud)
切到秒:
localTime.truncatedTo(ChronoUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)
例:
LocalTime.now().truncatedTo(ChronoUnit.SECONDS).format(DateTimeFormatter.ISO_LOCAL_TIME)
Run Code Online (Sandbox Code Playgroud)
输出 15:07:25
只需DateTimeFormatter
明确创建:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss", Locale.US);
LocalTime time = LocalTime.now();
String f = formatter.format(time);
System.out.println(f);
Run Code Online (Sandbox Code Playgroud)
(我更喜欢明确使用美国语言环境,以明确我不需要默认格式语言环境中的任何内容.)
在第一行中使用它
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)