【发布时间】:2018-11-10 22:53:38
【问题描述】:
我目前正在考虑从 JodaTime 迁移到 java8 api。
大多数都可以,但有一件事让我无法理解。我需要计算一个人在“办公时间”内轮班工作的时间。
使用 JodaTime,我利用 Instant 类执行计算并取得了巨大成功:
DateTime in = new DateTime(inTime);
DateTime out = new DateTime(outTime);
Interval officeHours = new Interval(in.withTime(whstart.getHours(),
whstart.getMinutes(), 0, 0),
in.withTime(whend.getHours(), whend.getMinutes(), 0, 0));
Interval shift = new Interval(in, out);
Interval overlap = officeHours.overlap(shift);
officeHoursSeconds = overlap != null ?
overlap.toDuration().getStandardSeconds() : 0;
但是,由于 java8 中似乎缺少 Interval 类,所以对于如何最好地将这个逻辑移动到 java8 api 中,我有点茫然。
我当然可以继续使用 Jodatime,但由于它已停产,我想尝试将其完全删除。
非常感谢指针。
【问题讨论】: