2013-04-16 28 views
2

我使用的是Joda Time library一個月從減去LOCALDATE效仿PHP日期計算:使用約達時間

LocalDate date = new LocalDate(2013, 3, 31); 
System.out.println(date.minusMonths(1)); 

結果是2013年2月28日,這是我會直覺地想到並且是也記錄在API

如果減去個月,使一天的日無效,將其調整爲最後的有效 一天的一個月。

然而,在我目前的項目,我需要與一些現有的PHP代碼這樣的兼容:

$date = new \DateTime('2013-03-31'); 
echo $date->sub(new \DateInterval('P1M'))->format('Y-m-d'); 

這裏的結果將是2013年3月3日,即它是「翻身」到下個月。

如何使用喬達時間實現相同的行爲?

回答

1

PHP似乎減去它在上個月發現的天數。這應該與喬達做到這一點:

LocalDate date = new LocalDate(2013, 3, 31); 
int numberOfDays = date.minusMonths(1).dayOfMonth().getMaximumValue(); 
System.out.println(date.minusDays(numberOfDays)); 
+0

這很好用!謝謝! – user2286693