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

2022-08-31 09:24:54

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


答案 1

怎么样:

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

dayOfMonth()返回 一个,它以一种知道原点的方式表示“月中的某一天”字段。LocalDate.PropertyLocalDate

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

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

LocalDate lastDayOfMonth = dt.dayOfMonth().withMaximumValue();

答案 2

另一个简单的方法是这样的:

//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);

推荐