我發現如何獲取兩個日期和分鐘數之間的小時數。我要的是他們兩人之間的確切差別,這是我使用的代碼:兩個Java日期對象之間的小時數+分鐘數
private String getHours(Message punch) {
LocalTime out = Instant.ofEpochMilli(message.getOut().getTime()).atZone(ZoneId.of(message.getTimezone()))
.toLocalTime();
LocalTime in = Instant.ofEpochMilli(message.getIn().getTime()).atZone(ZoneId.of(message.getTimezone()))
.toLocalTime();
Duration duration = Duration.between(in, out);
Long hours = duration.toHours();
Long minutes = duration.toMinutes() - (hours * Constants.MINUTES_IN_AN_HOUR);
return String.format("%d:%d", hours, minutes);
}
它工作正常進行的情況下,主要的,但我有在以下情況下的錯誤:
- message.getIn()返回:12:59
- message.getOut()返回:22:00
兩者都是同一天,我期待不同的是9 :01,但我得到-14:-59
調試代碼我意識到,出來的是04:00,並在獲得18:59。
對於幾乎所有的情況它運作良好,但它發生在一些情況。
當您將參數切換爲Duration.between時會發生什麼? –
Plse檢查此代碼是否有幫助 –
http://stackoverflow.com/a/39614758/4247543 –