Java8LocalDate.plusMonths正在增加天数和月份
在向LocalDate添加月份时,我遇到了奇怪的格式问题。以下是Scala代码和输出: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
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日
。还差一年。