如何使用JodaTime获取特定月份的最后日期?

Iva*_*van 108 java scala jodatime

我需要得到org.joda.time.LocalDate一个月的第一个日期和最后一个日期.获得第一个是微不足道的,但是获得最后一个似乎需要一些逻辑,因为几个月有不同的长度,二月长度甚至变化多年.是否有一个已经内置于JodaTime的机制或者我应该自己实现它?

Jon*_*eet 217

怎么样:

LocalDate endOfMonth = date.dayOfMonth().withMaximumValue();
Run Code Online (Sandbox Code Playgroud)

dayOfMonth()LocalDate.Property以知道起源的方式返回表示"月中某天"字段的字段LocalDate.

碰巧的是,该withMaximumValue()方法甚至被记录为推荐它用于此特定任务:

此操作对于在月份的最后一天获取LocalDate非常有用,因为月份长度会有所不同.

LocalDate lastDayOfMonth = dt.dayOfMonth().withMaximumValue();
Run Code Online (Sandbox Code Playgroud)

  • @ WarrenM.Nocos:我使用`dt.with(TemporalAdjusters.lastDayOfMonth())` (5认同)