package com.dsh.guns.modular.system.util; import java.time.*; import java.time.format.DateTimeFormatter; import java.util.*; public class TimeUtil { private static final String DATE_FORMATTER_TIME = "yyyy-MM-dd HH:mm:ss"; /** * 获取当天的00:00:00 * * @return */ public static LocalDateTime getDayStart(LocalDateTime time) { return time.with(LocalTime.MIN); } /** * 获取当天的23:59:59 * * @return */ public static LocalDateTime getDayEnd(LocalDateTime time) { return time.with(LocalTime.MAX); } /** * 获取指定日期字符串的LocalDateTime * String转LocalDateTime * * @param time 日期字符串 * @return 结果LocalDateTime */ public static LocalDateTime getLocalDateTime(String time) { DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.CHINA); LocalDate localDate = LocalDate.parse(time, dateTimeFormatter); Date date = Date.from(localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant()); return date.toInstant().atZone(ZoneOffset.ofHours(8)).toLocalDateTime(); } /** * 指定日期所在月的第一天/最后一天时间 * * @return 结果集 */ public static Map getMonthDate(Date date) { Map map = new HashMap<>(2); Calendar cal = Calendar.getInstance(); //设置指定日期 cal.setTime(date); //获取当月第一天日期 // int first = cal.getActualMinimum(Calendar.DAY_OF_MONTH); // cal.set(Calendar.DAY_OF_MONTH, first); // Date firstDay = cal.getTime(); // map.put("first", firstDay); //获取当月最后一天日期 int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH); cal.set(Calendar.DAY_OF_MONTH, last); Date lastDay = cal.getTime(); map.put("last", lastDay); return map; } /** * Date转为LocalDateTime * * @param date 日期 * @return LocalDateTime */ public static LocalDateTime dateToLocalDateTime(Date date) { Instant instant = date.toInstant(); ZoneId zoneId = ZoneId.systemDefault(); return instant.atZone(zoneId).toLocalDateTime(); } }