1. 程式人生 > 其它 >JAVA 獲取某天、某周、某月、某年的開始時間和結束時間

JAVA 獲取某天、某周、某月、某年的開始時間和結束時間

import java.util.Calendar;
import java.util.Date;

public class DateUtil {
    
    /**
     * 獲取指定天的開始時間
     * @return
     */
    public static Date getStartTimeOfCurrentDay(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.clear();
        calendar.setTime(date);
        setMinTimeOfDay(calendar);
        
return calendar.getTime(); } /** * 獲取指定天的結束時間 * @return */ public static Date getEndTimeOfCurrentDay(Date date){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.setTime(date); setMaxTimeOfDay(calendar); return calendar.getTime(); }
/** * 獲取指定周的開始時間 * @return */ public static Date getStartTimeOfCurrentWeek(Date date){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.setTime(date); calendar.setFirstDayOfWeek(Calendar.MONDAY); calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); setMinTimeOfDay(calendar);
return calendar.getTime(); } /** * 獲取指定月的結束時間 * @return */ public static Date getEndTimeOfCurrentWeek(Date date){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.setTime(date); calendar.setFirstDayOfWeek(Calendar.MONDAY); calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); setMaxTimeOfDay(calendar); return calendar.getTime(); } /** * 獲取指定月的開始時間 * @return */ public static Date getStartTimeOfCurrentMonth(Date date){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.setTime(date); calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),1); setMinTimeOfDay(calendar); return calendar.getTime(); } /** * 獲取指定月的結束時間 * @return */ public static Date getEndTimeOfCurrentMonth(Date date){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.setTime(date); int maxMonthDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),maxMonthDay); setMaxTimeOfDay(calendar); return calendar.getTime(); } /** * 獲取指定年的開始時間 * @return */ public static Date getStartTimeOfCurrentYear(Date date){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.setTime(date); calendar.set(calendar.get(Calendar.YEAR),1,1); setMinTimeOfDay(calendar); return calendar.getTime(); } /** * 獲取指定年的結束時間 * @return */ public static Date getEndTimeOfCurrentYear(Date date){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.setTime(date); calendar.set(calendar.get(Calendar.YEAR),12,31); setMaxTimeOfDay(calendar); return calendar.getTime(); } /** * 設定當天的開始時間 * @param calendar */ private static void setMinTimeOfDay(Calendar calendar) { calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.MILLISECOND, 0); } /** * 設定當天的結束時間 * @param calendar */ private static void setMaxTimeOfDay(Calendar calendar) { calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.SECOND, 59); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.MILLISECOND, 999); } }