【问题标题】:Appropriate way to set a duration in Java在 Java 中设置持续时间的适当方法
【发布时间】:2010-07-17 18:51:23
【问题描述】:

使用 标准 Java 库在 Java 中设置持续时间的适当方法是什么?日期()?日历()?例子?

感谢和干杯 呃

【问题讨论】:

    标签: java datetime types duration


    【解决方案1】:

    Java 日期和时间有一个事实上的标准 - JodaTime。它有Duration。 JodaTime API 被认为比DateCalendar 好得多。

    当然,您也可以将持续时间存储在 long 中 - 以毫秒为单位。

    【讨论】:

    • 谢谢,我知道 Joda,但是,我想知道标准库如何表示持续时间...
    • O ...“长”是我更喜欢的。我只是想确保这将是标准库的最佳实践。 long,甚至 int,都会很棒!
    • 不要使用long。迟早有人会怀疑它们是秒还是毫秒或其他东西,并且会浪费时间找出来。这些天也不要使用 Joda-Time 来编写新代码,它已经过时了。请使用java.time.Duration。查看其他答案。
    【解决方案2】:

    使用 Java-8 标准库

    java.time.DurationISO-8601 standards 为蓝本,并作为JSR-310 implementation 的一部分引入。

    快速演示:

    import java.time.Duration;
    import java.time.LocalTime;
    
    public class Main {
        public static void main(String[] args) {
            System.out.println(Duration.ofNanos(1234567890));
            System.out.println(Duration.ofMillis(123456789));
            System.out.println(Duration.ofSeconds(12345678));
            System.out.println(Duration.ofMinutes(1234567));
            System.out.println(Duration.ofHours(123456));
            System.out.println(Duration.ofDays(12345));
    
            System.out.println(Duration.between(LocalTime.of(1, 2, 3), LocalTime.of(4, 5, 6)));
        }
    }
    

    输出:

    PT1.23456789S
    PT34H17M36.789S
    PT3429H21M18S
    PT20576H7M
    PT123456H
    PT296280H
    PT3H3M3S
    

    Trail: Date Time 了解现代日期时间 API。

    【讨论】:

      猜你喜欢
      • 2016-10-25
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多