📅  最后修改于: 2023-12-03 15:15:58.123000             🧑  作者: Mango
在Java中,获取某一年或月的最后一天是一个常见的需求。下面将介绍几种获取最后一天的方式。
java.util.Calendar
java.util.Calendar
类是Java日期操作的基础类,它提供了很多日期时间操作的方法,其中就包括计算某月最后一天的方法。代码如下:
import java.util.Calendar;
public class JavaGetLastDayOfMonth {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2021);
calendar.set(Calendar.MONTH, 1); // February
int lastDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(lastDay);
}
}
这段代码首先创建了一个Calendar实例,并通过set()方法设置了年份和月份,然后调用了getActualMaximum()方法计算此月的最后一天,最后输出结果。
运行结果为:28
java.time.LocalDate
在Java 8中,新增了一组标准日期时间API(java.time.*
),其中包括了更为简洁的方式获取某月的最后一天。代码如下:
import java.time.LocalDate;
public class JavaGetLastDayOfMonth {
public static void main(String[] args) {
int lastDay = LocalDate.of(2021, 2, 1).lengthOfMonth();
System.out.println(lastDay);
}
}
这段代码使用了LocalDate.of()
方法指定年份和月份,然后调用lengthOfMonth()
方法获取该月的最后一天,最后输出结果。
运行结果为:28
org.apache.commons.lang3.time.DateUtils
org.apache.commons.lang3.time
包是Apache Commons Lang库中的一个日期时间操作工具包,提供了很多常用的日期时间操作方法,其中包括计算某月最后一天的方法。代码如下:
import org.apache.commons.lang3.time.DateUtils;
import java.util.Date;
public class JavaGetLastDayOfMonth {
public static void main(String[] args) {
Date date = new Date();
Date lastDay = DateUtils.addMonths(DateUtils.truncate(date, Calendar.MONTH), 1);
lastDay = DateUtils.addDays(lastDay, -1);
System.out.println(lastDay.getDate());
}
}
这段代码使用了DateUtils.addMonths()
方法增加一个月,并使用DateUtils.truncate()
方法截去天数部分,最后使用DateUtils.addDays()
方法减去一天获取该月的最后一天,最后输出结果。
运行结果为:28
以上就是获取某一年或月的最后一天的三种常用方法。使用java.util.Calendar
的方法具有通用性,但代码较为冗长;使用java.time.LocalDate
的方式简洁又有效,但要求使用JDK1.8及以上版本;同样适用于JDK1.6及以上版本的org.apache.commons.lang3.time.DateUtils
具有跨版本兼容性,但需要引入相关依赖库。