【发布时间】:2015-02-28 05:13:28
【问题描述】:
我们如何在 Java 中计算 Unix 时间跨度?
int endTime=1213036458;
int startTime= 1211018446;
结果应该以小时为单位。
【问题讨论】:
标签: java unix-timestamp
我们如何在 Java 中计算 Unix 时间跨度?
int endTime=1213036458;
int startTime= 1211018446;
结果应该以小时为单位。
【问题讨论】:
标签: java unix-timestamp
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
【讨论】: