如何用JodaTime获得一个月的最后一个日期?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (89)

我需要得到org.joda.time.LocalDate一个月和最后一个月的第一个日期。获得第一个是简单的,但最后似乎需要一些逻辑,因为月份的长度不同,而且二月的长度甚至会在几年内变化。有没有一种机制已经内置于JodaTime中,还是我应该自己实现?

提问于
用户回答回答于

这个:

LocalDate endOfMonth = date.dayOfMonth().withMaximumValue();

dayOfMonth()返回一个LocalDate.Property表示“月份的日期”字段的方式,以知道发起的方式LocalDate

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

此操作对于在月份的最后一天获取LocalDate很有用,因为月份长度有所不同。 LocalDate lastDayOfMonth = dt.dayOfMonth().withMaximumValue();

用户回答回答于

另一个简单的方法是:

//Set the Date in First of the next Month:
answer = new DateTime(year,month+1,1,0,0,0);
//Now take away one day and now you have the last day in the month correctly
answer = answer.minusDays(1);

扫码关注云+社区