| package com.mzl.flower.utils; | 
|   | 
| import org.apache.poi.util.LocaleUtil; | 
|   | 
| import java.time.LocalDate; | 
| import java.time.LocalDateTime; | 
| import java.time.format.DateTimeFormatter; | 
| import java.util.Calendar; | 
| import java.util.Date; | 
| import java.util.TimeZone; | 
|   | 
| public class DateUtils { | 
|   | 
|   | 
|     /** | 
|      * | 
|      * @param dateString yyyy-MM-dd | 
|      * @return | 
|      */ | 
|     public static LocalDateTime dateToLocalDateTime(String dateString,boolean isBegin) { | 
|         if(isBegin){ | 
|             dateString = dateString+" 00:00:00"; | 
|         }else{ | 
|             dateString = dateString+" 23:59:59"; | 
|         } | 
|   | 
|         return dateTimeStringToLocalDateTime(dateString); | 
|     } | 
|   | 
|     /** | 
|      * | 
|      * @param dateTimeString yyyy-MM-dd HH:mm:ss | 
|      * @return | 
|      */ | 
|     public static LocalDateTime dateTimeStringToLocalDateTime(String dateTimeString) { | 
|         // 定义日期时间格式 | 
|         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); | 
|         // 将字符串转换为LocalDateTime对象 | 
|         LocalDateTime dateTime = LocalDateTime.parse(dateTimeString, formatter); | 
|         return dateTime; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 将LocalDateTime对象转换为字符串 | 
|      * @return | 
|      */ | 
|     public static String toString(LocalDate date,String format)  { | 
|         // 定义日期时间格式 | 
|         DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); | 
|         String str = date.format(formatter); | 
|         return str; | 
|     } | 
|   | 
|   | 
|   | 
|     public static Date getJavaDate(double date) { | 
|         return getJavaDate(date, false, (TimeZone)null, false); | 
|     } | 
|   | 
|     public static Date getJavaDate(double date, boolean use1904windowing, TimeZone tz) { | 
|         return getJavaDate(date, use1904windowing, tz, false); | 
|     } | 
|   | 
|     public static Date getJavaDate(double date, boolean use1904windowing, TimeZone tz, boolean roundSeconds) { | 
|         Calendar calendar = getJavaCalendar(date, use1904windowing, tz, roundSeconds); | 
|         return calendar == null ? null : calendar.getTime(); | 
|     } | 
|   | 
|     public static Calendar getJavaCalendar(double date, boolean use1904windowing, TimeZone timeZone, boolean roundSeconds) { | 
|         if (!isValidExcelDate(date)) { | 
|             return null; | 
|         } else { | 
|             int wholeDays = (int)Math.floor(date); | 
|             int millisecondsInDay = (int)((date - (double)wholeDays) * 8.64E7 + 0.5); | 
|             Calendar calendar; | 
|             if (timeZone != null) { | 
|                 calendar = LocaleUtil.getLocaleCalendar(timeZone); | 
|             } else { | 
|                 calendar = LocaleUtil.getLocaleCalendar(); | 
|             } | 
|   | 
|             setCalendar(calendar, wholeDays, millisecondsInDay, use1904windowing, roundSeconds); | 
|             return calendar; | 
|         } | 
|     } | 
|   | 
|     public static boolean isValidExcelDate(double value) { | 
|         return value > -4.9E-324; | 
|     } | 
|   | 
|     public static void setCalendar(Calendar calendar, int wholeDays, int millisecondsInDay, boolean use1904windowing, boolean roundSeconds) { | 
|         int startYear = 1900; | 
|         int dayAdjust = -1; | 
|         if (use1904windowing) { | 
|             startYear = 1904; | 
|             dayAdjust = 1; | 
|         } else if (wholeDays < 61) { | 
|             dayAdjust = 0; | 
|         } | 
|   | 
|         calendar.set(startYear, 0, wholeDays + dayAdjust, 0, 0, 0); | 
|         calendar.set(14, millisecondsInDay); | 
|         if (calendar.get(14) == 0) { | 
|             calendar.clear(14); | 
|         } | 
|   | 
|         if (roundSeconds) { | 
|             calendar.add(14, 500); | 
|             calendar.clear(14); | 
|         } | 
|   | 
|     } | 
|   | 
|   | 
|   | 
|     public static void main(String[] args) { | 
|         // 定义日期时间字符串 | 
|         String dateTimeString = "2024-06-17 00:00:00"; | 
|         // 打印结果 | 
|         System.out.println("转换后的LocalDateTime对象: " + dateTimeStringToLocalDateTime(dateTimeString)); | 
|     } | 
| } |