【问题标题】:Duration between two dates in GroovyGroovy 中两个日期之间的持续时间
【发布时间】:2018-11-23 14:01:36
【问题描述】:

Groovy 中有没有办法获取两个 Date 对象之间的持续时间?我正在寻找的持续时间格式类似于:2 天、10 小时、30 分钟......

谢谢

【问题讨论】:

    标签: groovy


    【解决方案1】:

    TimeCategory 有一些获取持续时间的方法。你可以像这样使用它

    use(groovy.time.TimeCategory) {
        def duration = date1 - date2
        print "Days: ${duration.days}, Hours: ${duration.hours}, etc."
    }
    

    【讨论】:

    • @MichalBernhard 如何使用被认为是“污染”的区块?
    • TimeCategory.minus(date1, date2).days
    • 请注意,在输入夏令时 (DST)/夏令时时,这可能会导致计算错误。由于时间会跳过一个小时,因此当您预计相差 1 天时,它将计算 0 天和 23 小时。
    【解决方案2】:

    use()-语法对我来说很奇怪。 所以我更喜欢这样:

    def duration = groovy.time.TimeCategory.minus(
      new Date(),
      new Date(session.creationTime)
    );
    def values = [
                "seconds: " + duration.seconds,
                "min: " + duration.minutes,
                "hours: " + duration.hours,
                "days: " + duration.days,
                "ago: " + duration.ago,
    ];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2020-07-15
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      相关资源
      最近更新 更多