如果你想的那些2個LocalTime
實例小時之間具體的數目,你可以使用org.joda.time.Hours
類:
LocalTime startTime = new LocalTime(8, 0);
LocalTime endTime = new LocalTime(16, 0);
int hours = Hours.hoursBetween(startTime, endTime).getHours();
的結果將是8
。
你也可以使用一個org.joda.time.Period
:
Period period = new Period(startTime, endTime);
System.out.println(period.getHours()); // 8
結果也8
。
它們之間的差異是Hours
舍入值,但Period
沒有。例如:
// difference between 08:00 and 16:30
LocalTime startTime = new LocalTime(8, 0);
LocalTime endTime = new LocalTime(16, 30);
Period period = new Period(startTime, endTime);
System.out.println(period); // PT8H30M
System.out.println(period.getHours()); // 8
System.out.println(period.getMinutes()); // 30
int hours = Hours.hoursBetween(startTime, endTime).getHours();
System.out.println(hours); // 8
雖然Period
保持所有字段(8小時和30分鐘),則需要Hours
只關心小時和丟棄的其他字段。
非常豐富,你實際上回答了我昨天也遇到的一個小問題。非常感謝您分享您的專業知識! –
不客氣,很高興幫助! – 2017-08-11 16:52:12