使用Java划分时间

使用Java划分时间,java,calendar,jodatime,java-time,Java,Calendar,Jodatime,Java Time,我正在做的雅虎产品API从雅虎获得的产品使用时间限制。我通过开始时间和结束时间来获得该日期之间可用的产品。通过他们为获取产品提供的url传递这些日期 在雅虎,每次通话只能收到1000个产品,所以我现在做的是给1个月的时间限制,然后打电话,在这个时间限制内收到产品。在某些情况下,它不会超过1000个,但在某些情况下,如果它将超过1000个产品,我希望将时间分为一半(1个月到15天的时间间隔),再次检查并重复此操作,直到我在该时间戳中获得的产品少于1000个 除了分秒必争之外,我做了其他所有的事情。

我正在做的雅虎产品API从雅虎获得的产品使用时间限制。我通过开始时间和结束时间来获得该日期之间可用的产品。通过他们为获取产品提供的url传递这些日期

在雅虎,每次通话只能收到1000个产品,所以我现在做的是给1个月的时间限制,然后打电话,在这个时间限制内收到产品。在某些情况下,它不会超过1000个,但在某些情况下,如果它将超过1000个产品,我希望将时间分为一半(1个月到15天的时间间隔),再次检查并重复此操作,直到我在该时间戳中获得的产品少于1000个

除了分秒必争之外,我做了其他所有的事情。请帮帮我

使用库:


java.time.Duration
是一个可划分的时间间隔

LocalDateTime t1 = LocalDateTime.now();
LocalDateTime t2 = t1.plusMonths(1);
Duration t = Duration.between(t1, t2).dividedBy(2);
t2 = t1.plus(t);

我不知道乔达的时间。但是您可以使用java.util.Calendar来实现这一点。开始时间和结束时间作为两个日历对象。通过将结束日历移动到中点,递归地将间隔划分为较短的间隔<代码>endCalendar.setTime(endCalendar.getTimeinMillis-(endCalendar.getTimeinMillis-StartCalendar.getTimeinMillis)/2)我现在给出的时间是硬编码的。不带系统时间戳。例如,私有静态最终长启动日期=2014042410110L;专用静态最终长端_日期=201404301010L;考虑到这是我给出的时间。yyyymmddhhmmss,在此时间限制内,我正在检查,如果超过,我需要除以该时间。如果我正在检查05月01日到05月30日的日期,如果它超过1000,我想检查05月15日到30日的日期。你可以根据你给出的时间戳构造日历对象。日历对象不一定需要系统时间。静态列表拆分持续时间(DateTime开始,DateTime结束,long chunkAmount,long chunkSize){long millis=start.getMillis();List List=new ArrayList();for(int i=0;iLocalDateTime t1 = LocalDateTime.now(); LocalDateTime t2 = t1.plusMonths(1); Duration t = Duration.between(t1, t2).dividedBy(2); t2 = t1.plus(t);