使用间隔格式 P10D 和类似格式增加或减少给定时间

Increase or decrease the given time using the interval format P10D and similar

如何使用 joda time 增加或减少时间间隔? 在php我以前考虑过DateInterval。但是在 java

中找不到类似的方法
$buildDate = new DateTime(‘2015-10-15’); //"2015-10-15 00:00:00"
$buildDate->add(new DateInterval('P15D')); // "2015-10-30 00:00:00"
$buildDate->add(new DateInterval("P5M")); //"2016-03-30 00:00:00"
$buildDate->add(new DateInterval("P5Y")); //"2021-03-30 00:00:00"
$buildDate->add(new DateInterval("P3W")); //"2021-04-20 00:00:00"

谢谢

我认为要像在 joda 时间做同样的事情,最好使用 org.joda.time.DateTime class 使用 plus...(int period) 方法,如下所示:

    DateTime today = new DateTime(2015,10,15,0,0);
    System.out.println(today); // 2015-10-15T00:00:00.000+02:00
    DateTime newDate = today.plusDays(15).plusMonths(5).plusYears(5).plusWeeks(3);
    System.out.println(newDate); // 2021-04-20T00:00:00.000+02:00

但是,如果您想像在 PHP 中那样使用句号,您可以尝试使用 DateTime.plus() passing a org.joda.time.Period`:

    DateTime day = new DateTime(2015,10,15,0,0);
    System.out.println(day); // 2015-10-15T00:00:00.000+02:00
    day = day.plus(Period.parse("P15D"));
    System.out.println(day); // 2015-10-30T00:00:00.000+01:00
    day = day.plus(Period.parse("P5M"));
    System.out.println(day); // 2016-03-30T00:00:00.000+02:00
    day = day.plus(Period.parse("P5Y"));
    System.out.println(day); // 2021-03-30T00:00:00.000+02:00
    day = day.plus(Period.parse("P3W"));
    System.out.println(day); // 2021-04-20T00:00:00.000+02:00

希望对您有所帮助,