获取某天的零点日期
获取某天的零点日期
以下方法获取某一天(传入的日期)的起始时刻(即当天 00:00:00.000)
示例
如果当前时间是:2023-10-15 14:30:25.123
那么 startOfDay 将是:2023-10-15 00:00:00.000
package com.example.batch.util;import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Calendar;
import java.util.Date;/*** @author Awei* @date 2025-08-31 14:50*/
public class getStartOfDayUtil {/*** 获取某天的其实时间* @param date 某天* @return*/public static Date getStartOfDay(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}public static Date getStartOfDay1(Date date) {// 更现代的写法LocalDate today = LocalDate.now();LocalDateTime startOfDay = today.atStartOfDay();Date startOfDayDate = Date.from(today.atStartOfDay(ZoneId.systemDefault()).toInstant());return startOfDayDate;}public static void main(String[] args) {Date today = new Date();Date startOfDay = getStartOfDay(today);System.out.println(startOfDay);System.out.println(getStartOfDay1(today));}}