Joda是必须的,因为Java SE8在这种环境中不可用。
如何查找两个Message
个对象之间的小时差异,以LocalTime
存储?尝试以下没有运气:
Duration
答案 0 :(得分:1)
如果您特别想要这两个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
只关注小时数并丢弃其他字段。