yangys
2024-09-02 03c9023f1e373060d6cbf5df7a18de90440399be
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package com.qianwen.mdc.collect.utils;
 
import java.time.DayOfWeek;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Period;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalAdjusters;
import java.time.temporal.TemporalUnit;
import java.time.temporal.WeekFields;
import java.util.Date;
 
public class LocalDateTimeUtils {
    public static String pattern = "yyyy-MM-dd";
 
    public static Long getSecondsByTime(LocalDateTime time) {
        return Long.valueOf(time.atZone(ZoneId.systemDefault()).toInstant().getEpochSecond());
    }
 
    public static String formatTime(LocalDateTime time, String pattern2) {
        return time.format(DateTimeFormatter.ofPattern(pattern2));
    }
 
    public static String formatTimeLocalDate(LocalDate date, String pattern2) {
        return date.format(DateTimeFormatter.ofPattern(pattern2));
    }
 
    public static String formatNow(String pattern2) {
        return formatTime(LocalDateTime.now(), pattern2);
    }
 
    public static LocalDateTime plus(LocalDate localDate, long number, TemporalUnit field) {
        return localDate.atStartOfDay().plus(number, field);
    }
 
    public static Integer getWeek(LocalDate time) {
        WeekFields weekFields = WeekFields.of(DayOfWeek.MONDAY, 1);
        return Integer.valueOf(time.get(weekFields.weekOfYear()));
    }
 
    public static Integer getMonth(LocalDate time) {
        return Integer.valueOf(time.getMonth().getValue());
    }
 
    public static Integer getYear(LocalDate time) {
        return Integer.valueOf(time.getYear());
    }
 
    public static long betweenTwoTime(LocalDateTime startTime, LocalDateTime endTime, ChronoUnit field) {
        Period period = Period.between(LocalDate.from((TemporalAccessor) startTime), LocalDate.from((TemporalAccessor) endTime));
        if (field == ChronoUnit.YEARS) {
            return period.getYears();
        }
        if (field == ChronoUnit.MONTHS) {
            return (period.getYears() * 12) + period.getMonths();
        }
        return field.between(startTime, endTime);
    }
 
    public static LocalDateTime getDayStart(LocalDateTime time) {
        return time.withHour(0).withMinute(0).withSecond(0).withNano(0);
    }
 
    public static LocalDateTime getDayEnd(LocalDateTime time) {
        return time.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
    }
 
    public static Integer getDayOfYear(Integer year) {
        return Integer.valueOf(LocalDate.of(year.intValue(), 1, 1).isLeapYear() ? 366 : 365);
    }
 
    public static Integer getDifference(LocalDate startDate, LocalDate endDate) {
        Long l = Long.valueOf(endDate.toEpochDay() - startDate.toEpochDay());
        Integer difference = Integer.valueOf(Integer.parseInt(l.toString()));
        return difference;
    }
 
    public static LocalDate getLastDayOfYear(LocalDate date) {
        LocalDate lastDayOfYear = date.with(TemporalAdjusters.lastDayOfYear());
        return lastDayOfYear;
    }
 
    public static Date LocalDateTimeToDate(LocalDateTime localDateTime) {
        ZoneId zoneId = ZoneId.systemDefault();
        ZonedDateTime zdt = localDateTime.atZone(zoneId);
        Date date = Date.from(zdt.toInstant());
        return date;
    }
 
    public static Date LocalDateToDate(LocalDate localDate) {
        ZoneId zone = ZoneId.systemDefault();
        Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();
        Date date = Date.from(instant);
        return date;
    }
 
    public static Date LocalTimeToDate(LocalTime localTime) {
        LocalDate localDate = LocalDate.now();
        LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
        ZoneId zone = ZoneId.systemDefault();
        Instant instant = localDateTime.atZone(zone).toInstant();
        Date date = Date.from(instant);
        return date;
    }
 
    public static LocalDateTime DateToLocalDateTime(Date date) {
        Instant instant = date.toInstant();
        ZoneId zone = ZoneId.systemDefault();
        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
        return localDateTime;
    }
 
    public static LocalDate DateToLocalDate(Date date) {
        Instant instant = date.toInstant();
        ZoneId zone = ZoneId.systemDefault();
        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
        LocalDate localDate = localDateTime.toLocalDate();
        return localDate;
    }
 
    public static LocalTime DateToLocalTime(Date date) {
        Instant instant = date.toInstant();
        ZoneId zone = ZoneId.systemDefault();
        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
        LocalTime localTime = localDateTime.toLocalTime();
        return localTime;
    }
 
    public static LocalDateTime parseLocalDateTime(String time) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        return LocalDateTime.of(LocalDate.parse(time, formatter), LocalTime.MIN);
    }
}