如何有效地增加时期

时间:2014-10-24 10:01:29

标签: java jodatime

我有一个时间戳t,我希望在t'之后的时间段之后找到下一个时段p开头的时间戳t从0开始。

示例:

t = 2014-10-24T11:10:23.456Z
p = P1D

t' would be 2014-10-25T00:00:00.000Z

请注意,p可以是任何ISO 8601期间。

我当前的实现有效(但速度极慢!):

Period p = Period.parse("P1M1D");

final MutableDateTime start= new MutableDateTime(startTimestamp);
final MutableDateTime currentEnd = new MutableDateTime(0, 1, 1, 0, 0, 0, 0, DateTimeZone.UTC);

while (currentEnd.compareTo(start) <= 0) {
    currentEnd.add(p);
}
System.out.println(currentEnd);

--> 2014-11-02T00:00:00.000Z

你能想到一种更有效的方法吗?

0 个答案:

没有答案