Java8LocalDate.plusMonths正在增加天数和月份

Java8LocalDate.plusMonths正在增加天数和月份,java,scala,date,date-formatting,java-time,Java,Scala,Date,Date Formatting,Java Time,在向LocalDate添加月份时,我遇到了奇怪的格式问题。以下是Scala代码和输出: val virtualToday: LocalDate = LocalDate.parse("2015-01-01") val eightDaysFromToday: LocalDate = virtualToday.plusDays(8) val sixMonthsFromToday: LocalDate = virtualToday.plusMonths(6) println("virtualToday

在向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"))
    )
这是输出:

虚拟日2015-01-01
从今天起八天2015-01-09
从今天起六个月2015-07-01

格式为2015年1月1日的VirtualDay
从今天起八天,格式为2015年1月9日
从今天起六个月,2015年7月18日


正如你所看到的,它正确地增加了6个月的月份,但它也增加了6个月的天数。如何获得从今天起的6个月(即2015年7月1日)的格式?请签出。
D
表示一年中的某一天。如果您想要月日,请使用
d

谢谢。我知道这样做会很愚蠢。此外,如果你想要纪年而不是以周为基础的年份,请使用
y
而不是
y
。@deHaar这实际上是一个重要的补充,谢谢。虽然这个错误可能会被忽略很长时间,但当它最终出现时,肯定会让用户感到困惑。虽然我认为这不是一个严格的重复,但有一些相关的问题:(1)(2)也可以尝试
virtualToday.plusYears(1)
。在英国地区(
Locale.UK
)我们得到了
2016-01-01
但是
2015年1月1日
。还差一年。