datetime - 如何使用 LocalDateTime 从 Java 8 中的字符串创建以毫秒为单位的长时间?
问题描述
我有一个格式的输入日期,yyyy-MM-dd_HH:mm:ss.SSS
并以这种方式将其转换为 long:
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();
}
并且,经过一些操作,mm:ss.SSS
从 long 中返回:
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);
推荐阅读
- reactjs - 数据不会被拉入前端 - 做出反应
- powershell - Set-ADObject:实例对象的对象类必须包含'top'
- python - Pyspark:如何创建新列并将列的值条件与行值匹配
- java - Spring MVC 与 Spring Boot 与 Spring
- html - 隐藏内容显示并向下滚动时,Chrome 页面会跳转/闪烁
- angular - 禁用 ngx-bootstrap 弹出窗口?
- swift - 如何获取通知权限状态(Swift)?
- c++ - 使用 istream 和 ostream 对象作为类 c++ 的数据成员
- palantir-foundry - 如何在 Contour 中按两列对表格进行排序?
- arm - Cortex M 处理器如何获取指令