gongzuming
2024-09-19 a768dc3daa04d35fedfbe75c0a59b9b2545b85c4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
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));
    }
}