Java如何在Joda-Time中获得一个月的最后一天?

这个示例向我们展示了如何使用Joda-Time的DateTime课程获取月份的最后一天。要获取该月的最后一天,我们首先需要找出该月的最后一天。为此,请创建一个新实例DateTime。DateTime通过调用该dayOfMonth()方法,从对象中获取“每月的日期”属性。然后调用withMaximumValue()将给我们一个月的最后日期的方法。

要获取日期名称,我们先调用DateTime的dayOfWeek()方法,然后再调用该getAsText()方法以获取日期名称。让我们看看下面的代码片段:

package org.nhooo.example.joda;

import org.joda.time.DateTime;
import org.joda.time.LocalDate;

public class LastDayOfTheMonth {
    public static void main(String[] args) {
        // 创建DateTime的实例。
        DateTime dateTime = DateTime.now();

        // 使用dayOfMonth属性获取月份的最后日期
        // 并从中获得最大值。
        DateTime lastDate = dateTime.dayOfMonth().withMaximumValue();

        // 打印日期和日期名称。
        System.out.println("Date = " + lastDate.toString());
        System.out.println("Day  = " + lastDate.dayOfWeek().getAsText());

        // 如果您知道该月的最后日期,则只需解析
        // 日期字符串,并获取该月最后一天的名称。
        String day = LocalDate.parse("2019-07-31").dayOfWeek().getAsText();
        System.out.println("Day  = " + day);
    }
}

如果您知道一个月的最后一个日期,则可以简单地分析日期字符串以创建一个DateTime或多个LocalDate对象,然后调用dayOfWeek()方法并使用getAsText()方法获取日期名称。

示例输出为:

Date = 2019-07-31T13:32:27.030+08:00
Day  = Wednesday
Day  = Wednesday

Maven依赖

<!-- https://search.maven.org/remotecontent?filepath=joda-time/joda-time/2.10.3/joda-time-2.10.3.jar -->
<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.10.3</version>
</dependency>

Maven中央