2024年4月11日发(作者:)

假如,当前是2020年1月,那么如何获取1月的开始和结束时间呢?

有如下几种方式:

方式一:用 java util包中的 Calendar类

简述:Calendar为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等

日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日

期)提供了一些方法。具体请阅读相关的API。

/**

* 获取当月的开始和结束时间

*/

public static void main(String[] args) {

// 获取当前年份、月份、日期

Calendar cale = tance();

// 获取当月第一天和最后一天

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

// 第一天

String firstDay = "";

cale = tance();

(, 0);

(_OF_MONTH, 1);

firstDay = (e());

// 最后一天

String lastDay = "";

cale = tance();

(, 1);

(_OF_MONTH, 0);

lastDay = (e());

n("本月第一天是 :" + firstDay);

n("本月最后一天是 :" + lastDay);

}

补充:使用SimpleDateFormat对时间进行格式化,但SimpleDateFormat是线

程不安全的。

方式二:用Java8 新的时间API的使用方式 - LocalDate

/**

* java 8 获取当前月的开始和结束时间

*/

public static void main(String[] args) {

LocalDate today = ();

//本月的第一天

LocalDate firstDay = (r(),

th(), 1);

//本月的最后一天

LocalDate lastDay =

(yOfMonth());

n("本月的第一天:" + ng() + "

00:00:00");

n("本月的最后一天:" + ng() + "

23:59:59");

}

补充:Date转换成LocalDate

public static LocalDate dateToLocalDate(Date date) {

if(null == date) {

return null;

}

return

ant().atZone(Default()).toLocalDate();

}