Java 如何将持续时间转换为秒?

Java 如何将持续时间转换为秒?,java,Java,我需要以以下格式获得结果:2:34.830 分钟和纳秒-没问题: LocalDateTime start = LocalDateTime.of(2018, 9, 2, 14, 17, 25, 135); LocalDateTime end = LocalDateTime.of(2018, 9, 2, 14, 19, 59, 965); Duration duration = Duration.between(start, end); 但是我怎样才能从这个示例中获得秒数-

我需要以以下格式获得结果:
2:34.830

分钟和纳秒-没问题:

    LocalDateTime start = LocalDateTime.of(2018, 9, 2, 14, 17, 25, 135);
    LocalDateTime end = LocalDateTime.of(2018, 9, 2, 14, 19, 59, 965);
    Duration duration = Duration.between(start, end);

但是我怎样才能从这个示例中获得秒数-34秒?

您要查找的是以下内容:

    System.out.println(duration.toMinutes());
    System.out.println(duration.toNanos());
或者

System.out.println(duration.getSeconds()%60);
在Java 9中,有一种专门的方法:


通过一些数学运算,你可以得到预期的结果

System.out.println(duration.toSecondsPart());
输出:

        long minutes = duration.toMinutes();
        long seconds = duration.getSeconds() % 60;
        long nanoSeconds = duration.toNanos() % 1000_000_000L;
        System.out.println(String.format("%d:%d.%d", minutes, seconds, nanoSeconds));
System.out.println(String.format("%d:%d:%d.%d", hours, minutes, seconds, nanoSeconds));
编辑: 在@M.Prokhorov的评论之后,也将其延长了数小时,同样:

2:34.830
并将其格式化为:

    long hours = duration.toHours();
    long minutes = duration.toMinutes() % 60;
输出:

        long minutes = duration.toMinutes();
        long seconds = duration.getSeconds() % 60;
        long nanoSeconds = duration.toNanos() % 1000_000_000L;
        System.out.println(String.format("%d:%d.%d", minutes, seconds, nanoSeconds));
System.out.println(String.format("%d:%d:%d.%d", hours, minutes, seconds, nanoSeconds));

你可以试试这个:你读了吗?这回答了你的问题吗?您可以使用
duration.getSeconds()
我强烈怀疑
toMinutesPart()
toSecondsPart()
Tonanospat()
是这里所需的方法。如果OP在这个打印输出中的持续时间为几百分钟是可以的,那么从示例中假设他感兴趣的是分钟精度。