本文主要是介绍【代码】获取日期所在月份的 月初、月末的日期,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当做月报的时候,会有一个从输入日期的月1号开始,到输入的日期,或者月末
比如:求2021.05.26的月初,也就是2021.05.01,,月末:2021.05.31
代码如下:
public class Test {
// 测试代码public static void main(String[] args) throws ParseException {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");String date = "2021-05-05";Date s = dateFormat.parse(date);Date[] dates = getMonthStartEnd(s);for (int i = 0; i < dates.length; i++) {System.out.println(dateFormat.format(dates[i]));}}// 月初月末代码public static Date[] getMonthStartEnd(Date day) {LocalDateTime now = day.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();LocalDateTime first = LocalDateTime.of(now.getYear(), now.getMonth(), 1, 0, 0, 0, 0);LocalDateTime last = LocalDateTime.of(first.with(TemporalAdjusters.lastDayOfMonth()).getYear(),first.with(TemporalAdjusters.lastDayOfMonth()).getMonth(),first.with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth(), 23, 59, 59);return new Date[]{Date.from(first.atZone(ZoneId.systemDefault()).toInstant()), Date.from(last.atZone(ZoneId.systemDefault()).toInstant())};}
}
输出结果是:2021-05-01 2021-05-31
这篇关于【代码】获取日期所在月份的 月初、月末的日期的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!