Java提供了很多日期時間相關的類和方法,可以方便地獲取當前日期時間、格式化日期時間和對日期進行加減操作。接下來我們講一下根據月份獲取月初和月末的方法。
public class DateUtil { /** * 獲取指定月份的月初日期 * * @param date 指定月份的任意日期 * @return 指定月份的月初日期 */ public static Date getMonthBegin(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); setDayStart(calendar); return calendar.getTime(); } /** * 獲取指定月份的月末日期 * * @param date 指定月份的任意日期 * @return 指定月份的月末日期 */ public static Date getMonthEnd(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); setDayEnd(calendar); return calendar.getTime(); } /** * 將日期時間設置為當天的開始時間(00:00:00) * * @param calendar 日期時間對象 */ public static void setDayStart(Calendar calendar) { calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); } /** * 將日期時間設置為當天的結束時間(23:59:59) * * @param calendar 日期時間對象 */ public static void setDayEnd(Calendar calendar) { calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); calendar.set(Calendar.MILLISECOND, 999); } }
以上是獲取月初和月末的Java代碼,其中使用了Calendar類操作日期時間。Calendar.getDefault()方法獲取的是當前時區的Calendar實例,Calendar.getInstance()方法獲取的是未指定時區的Calendar實例。Calendar.DAY_OF_MONTH常量表示日歷中的日期,通過set方法設置DAY_OF_MONTH來獲取月初和月末的日期。同時,還提供了兩個輔助方法setDayStart和setDayEnd來設置日期為當天的開始時間和結束時間。