📌  相关文章
📜  获取一个月的最后一天java(1)

📅  最后修改于: 2023-12-03 15:11:50.934000             🧑  作者: Mango

获取一个月的最后一天

在Java中,我们可以通过以下三种方法来获取一个月的最后一天:

1. 使用LocalDate的withDayOfMonth()方法

我们可以先获取月份,然后通过withDayOfMonth()方法将日期设置为该月的最后一天,如下所示:

import java.time.LocalDate;

public class LastDayOfMonth {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now(); // 获取当前日期
        LocalDate lastDayOfMonth = date.withDayOfMonth(date.lengthOfMonth()); // 获取该月的最后一天
        System.out.println("最后一天:" + lastDayOfMonth);
    }
}

输出结果:

最后一天:2022-09-30
2. 使用Calendar的getActualMaximum()方法

我们可以创建一个Calendar对象,然后通过getActualMaximum()方法获取该月的天数,最后将日期设置为该月的最后一天,如下所示:

import java.util.Calendar;

public class LastDayOfMonth {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance(); // 获取当前时间的Calendar对象
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int lastDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); // 获取该月的天数
        calendar.set(year, month, lastDay); // 将日期设置为该月的最后一天
        System.out.println("最后一天:" + calendar.getTime());
    }
}

输出结果:

最后一天:Fri Sep 30 16:50:17 CST 2022
3. 使用Date的getDate()和setDate()方法

我们可以先获取当前时间的Date对象,然后通过getDate()方法获取该月的天数,最后将日期设置为该月的最后一天,如下所示:

import java.util.Date;

public class LastDayOfMonth {
    public static void main(String[] args) {
        Date now = new Date(); // 获取当前时间
        int lastDay = getLastDayOfMonth(now); // 获取该月的天数
        now.setDate(lastDay); // 将日期设置为该月的最后一天
        System.out.println("最后一天:" + now);
    }

    private static int getLastDayOfMonth(Date date) {
        Calendar calendar = Calendar.getInstance(); // 创建Calendar对象
        calendar.setTime(date); // 设置时间
        return calendar.getActualMaximum(Calendar.DAY_OF_MONTH); // 获取该月的天数
    }
}

输出结果:

最后一天:Fri Sep 30 17:12:25 CST 2022

以上就是三种获取一个月的最后一天的方法,您可以根据具体需求选择适合自己的方法。