datetime - 如何使用 LocalDateTime 从 Java 8 中的字符串创建以毫秒为单位的长时间?

标签 datetime java-8 java-time

我有一个格式为 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? 我查看了 LocalDateTimeInstant 类,但不知道如何正确使用它们。

最佳答案

您可以创建 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/

相关文章:

Android IN Java 8 java.time

mysql - 这个查询MYSQL怎么写

java-8 - 如何将带有谓词接口(interface)的通用列表转换为 Lambda 表达式?

java - 无法在 Java 8 中使用 DateTimeFormatter 和 ZonedDateTime 从 TemporalAccessor 获取 ZonedDateTime

java - 如何从java8中的文件夹中获取唯一的文件名

java - 时区 BST 的偏移量错误

date - Java 8 LocalDateTime四舍五入到下一个X分钟

java - Joda Time 有时返回错误时间

javascript - 如何从字符串中确定日期格式?

JavaScript/jQuery 日期时间差异