我正在尝试使用 java.time.LocalDate 中的 plusMonths API。通过java doc,很明显,日期会针对任何无效的超过日期进行调整。
例如 31-03-2017 + 1 Month = 31-04-2017--> 30-04-2017(因为 4 月 31 日无效)。
但是,当我尝试将 API 用于二月的日期时,它不会返回下个月的最后一天(例如三月),而是在添加 30 天后返回日期。
例如 28-02-2017 + 1 个月 = 29-03-2017(预计 31-03-2017)。
public class AddMonthTest {
public static void main(String[] args) {
System.out.println(LocalDate.of(2017, 02, 28).plusMonths(1));
}
Run Code Online (Sandbox Code Playgroud)
给出输出: 2017-03-28 其中预期它应该返回 31-03-2017。
您可以使用 TemporalAdjusters.lastDayOfMonth() 移动到一个月的最后一天
public static void main(String[] args) {
System.out.println(LocalDate.of(2017, 2, 28).plusMonths(1).with(TemporalAdjusters.lastDayOfMonth()));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1082 次 |
| 最近记录: |