2015-01-29 17 views

Trả lời

16

Nếu bạn muốn thêm một tháng để 2015/01/29, bạn sẽ nhận được 2015/02/29 - kể từ năm 2015 không phải là năm nhuận, đó không phải là một ngày hợp lệ, vì vậy Joda chọn 2015/02/28, as documented:

Việc bổ sung có thể thay đổi năm, nhưng ngày trong tháng thường là không thay đổi. Nếu thêm tháng làm cho ngày trong tháng không hợp lệ, thì đó là được điều chỉnh đến ngày hợp lệ cuối cùng của tháng.

Và một tháng khác được thêm vào 2015/02/28 sẽ dẫn đến ngày thực tế 2015/03/28.

Sự cố với ngày 29 tháng 2 mất tích không xuất hiện khi thêm hai tháng vì Joda không bao giờ nhận được ngày không hợp lệ.

Điều tương tự cũng áp dụng cho, ví dụ: new LocalDate(2015, 03, 31).plusMonths(2) so với new LocalDate(2015, 03, 31).plusMonths(1).plusMonths(1) - Tôi đoán, điều này phổ biến hơn năm nhuận.

Các vấn đề liên quan