我有两个 Date 对象,我需要获取时差,以便确定它们之间的总小时数。他们碰巧来自同一天。我想要的结果会有小时和分钟。
当我在 Date 对象上使用 .toString() 时,我得到这个:Fri Dec 18 08:08:10 CST 2009
我试过以下方法:
long diff = (this.endDate.getTime() - this.startDate.getTime()) / (60 * 60 * 1000);
但这只给了我几个小时,而不是几分钟。我知道这是一个简单的问题,但我无法弄清楚atm。
编辑:有兴趣的人的最终解决方案。感谢 Michael Brewer-Davis
Period p = new Period(this.startDate, this.endDate);
long hours = p.getHours();
long minutes = p.getMinutes();
String format = String.format("%%0%dd", 2);
return Long.toString(hours) + ":" + String.format(format, minutes);
原文由 clang1234 发布,翻译遵循 CC BY-SA 4.0 许可协议
以下是它如何与 Joda 时间 一起工作:
您可以使用 Joda 的格式化程序进行格式化,例如 PeriodFormat,但我建议使用 Java 的。有关详细信息,请参阅 此问题。
编辑:小心使用此方法检查时间间隔。此功能不考虑天数。两次之间只有几个小时。 2022-07-20 11.00 和 2022-07-21 12.00 将返回 1 小时,而不是 25 小时。