如果你想的那些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