【问题标题】:How to calculate 2 Unix timeSpan difference. e.g. int endTime=1213036458; int startTime= 1211018446;如何计算 2 Unix timeSpan 差异。例如诠释结束时间=1213036458;诠释开始时间= 1211018446;
【发布时间】:2015-02-28 05:13:28
【问题描述】:

我们如何在 Java 中计算 Unix 时间跨度?

int endTime=1213036458;
int startTime= 1211018446;

结果应该以小时为单位。

【问题讨论】:

    标签: java unix-timestamp


    【解决方案1】:

    Unix time 通常(来自 Wikipedia 链接)定义为自 1970 年 1 月 1 日星期四 00:00:00 协调世界时 (UTC) 以来经过的秒数。该特定的epoch 由 Java 共享,但 Java 使用毫秒而不是秒。

    如果您使用的是 Java 8+,则可以使用 Duration 之类的

    int endTime = 1213036458;
    int startTime = 1211018446;
    Duration d = Duration.ofSeconds(endTime - startTime);
    System.out.println(d);
    

    这给了我(560 小时 33 分 32 秒)

    PT560H33M32S
    

    如果你使用的是旧版本的 Java,你总是可以用类似的东西来实现它

    int seconds = endTime - startTime;
    int hours = seconds / 3600;
    seconds -= hours * 3600;
    int minutes = seconds / 60;
    seconds -= minutes * 60;
    System.out.printf("%d hours, %d minutes and %d seconds%n", hours,
        minutes, seconds);
    

    我得到了预期

    560 hours, 33 minutes and 32 seconds
    

    【讨论】:

      猜你喜欢
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      • 2012-04-24
      • 1970-01-01
      • 2010-11-22
      相关资源
      最近更新 更多