Java 8 LocalDate.plusMonths 正在增加天数和月数

Java 8 LocalDate.plusMonths is adding to days and months

我在向 LocalDate 添加月份时遇到了奇怪的格式问题。这是 Scala 代码和输出:

val virtualToday: LocalDate = LocalDate.parse("2015-01-01")
val eightDaysFromToday: LocalDate = virtualToday.plusDays(8)
val sixMonthsFromToday: LocalDate = virtualToday.plusMonths(6)

println("virtualToday " + virtualToday)
println("eightDaysFromToday " + eightDaysFromToday)
println("sixMonthsFromToday " + sixMonthsFromToday)

println(
      "virtualToday with formatting " + virtualToday
        .format(DateTimeFormatter.ofPattern("D MMMM Y"))
    )
println(
      "eightDaysFromToday with formatting " + eightDaysFromToday
        .format(DateTimeFormatter.ofPattern("D MMMM Y"))
    )
println(
      "sixMonthsFromToday with formatting " + sixMonthsFromToday
        .format(DateTimeFormatter.ofPattern("D MMMM Y"))
    )

这是输出:

virtualToday 2015-01-01
从今天开始的八天 2015-01-09
从今天开始的六个月 2015-07-01

virtualToday,格式为 2015 年 1 月 1 日
eightDaysFromToday 格式为 2015 年 1 月 9 日
sixMonthsFromToday 格式为 182 July 2015

如您所见,它正确地将月份增加了 6 个月,但它也将天数增加了 6 个月。如何获取格式化为 2015 年 7 月 1 日的 sixMonthsFromToday 日期?

查看 DateTimeFormatterD 适用于 年中的第几天 。如果你想要 day-of-month 使用 d.