我有一个格式为 yyyy-MM-dd_HH:mm:ss.SSS
的输入日期,并以这种方式将其转换为长:
SimpleDateFormat simpleDateFormat =
new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss.SSS");
try {
Date date = simpleDateFormat.parse(lapTime);
time = date.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
并且,经过一些操作后,从 long 返回 mm:ss.SSS
:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mm:ss.SSS");
return simpleDateFormat.format(new Date(time));
如何将我的旧样式代码更改为 Java8?
我查看了 LocalDateTime
和 Instant
类,但不知道如何正确使用它们。
最佳答案
您可以创建 DateTimeFormatter输入格式化日期,然后转换为 Instant带区域提取纪元时间戳
String date = "2019-12-13_09:23:23.333";
DateTimeFormatter formatter =
DateTimeFormatter.ofPattern("yyyy-MM-dd_HH:mm:ss.SSS");
long mills = LocalDateTime.parse(date,formatter)
.atZone(ZoneId.systemDefault())
.toInstant()
.toEpochMilli();
System.out.println(mills);
关于datetime - 如何使用 LocalDateTime 从 Java 8 中的字符串创建以毫秒为单位的长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59329786/