2015-10-19 38 views
0

如何使用joda時間增加或減少時間間隔? 在PHP中我曾經考慮過DateInterval。但找不到在Java中類似的方法使用間隔格式P10D和類似的方法增加或減少給定時間

$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" 

感謝

回答

0

我認爲,做一樣的,你在喬達時間做最好使用plus...(int period)方法org.joda.time.DateTime類,如下所示使用:

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()傳遞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 

希望它有幫助,

+0

謝謝你的幫助。但是,我正好需要添加格式爲P2D,P3W等的時間段。問題是,找出我應該添加日/周/月/年。 –

+0

檢查我的更新,在那裏我展示瞭如何使用期望的格式':)':'day.plus(Period.parse(「P15D」))...' – albciff

+0

非常感謝。無法直接如你所說的那樣day = day.plus(Period.parse(「P3W」));取而代之的是Period a = Period.parse(「P10M」); DateTime added = start.plusDays(a.getDays())。plusMonths(a.getMonths())。plusYears(a.getYears()); –

相關問題