forked from nibnait/algorithms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDateTimeUtil.java
More file actions
130 lines (111 loc) · 4.42 KB
/
DateTimeUtil.java
File metadata and controls
130 lines (111 loc) · 4.42 KB
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
package utils;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Date;
public class DateTimeUtil {
public static final String DATE_FORMAT = "yyyy-MM-dd";
public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
private static DateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
private static DateFormat dateTimeFormat = new SimpleDateFormat(DATE_TIME_FORMAT);
private static DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(DATE_FORMAT);
private static DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DATE_TIME_FORMAT);
private static ZoneId defaultZoneId = ZoneId.systemDefault();
/**
* String ==> Date
*/
public static Date stringToDate(String dateString) throws ParseException {
return dateFormat.parse(dateString);
}
public static Date stringToDate(String dateString, String dateFormat) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
return simpleDateFormat.parse(dateString);
}
/**
* Date ==> String
*/
public static String Date2String(Date date) {
return dateFormat.format(date);
}
public static String Date2String(Date date, String dateFormat) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
return simpleDateFormat.format(date);
}
/**
* String ==> LocalDate
*/
public static LocalDate stringToLocalDate(String dateString) {
return LocalDate.parse(dateString, dateFormatter);
}
public static LocalDate stringToLocalDate(String dateString, String dateFormat) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(dateFormat);
return LocalDate.parse(dateString, dateTimeFormatter);
}
/**
* LocalDate ==> String
*/
public static String localDateToString(LocalDate localDate) {
return localDate.format(dateFormatter);
}
/**
* String ==> LocalDateTime
*/
public static LocalDateTime stringToLocalDateTime(String dateTimeString) {
return LocalDateTime.parse(dateTimeString, dateTimeFormatter);
}
public static LocalDateTime dateStringToLocalDateTime(String dateString) {
LocalDate localDate = LocalDate.parse(dateString, dateFormatter);
return localDate.atStartOfDay();
}
/**
* LocalDateTime ==> String
*/
public static String LocalDateTimeToString(LocalDateTime localDateTime) {
return localDateTime.format(dateTimeFormatter);
}
public static String LocalDateTimeToString(LocalDateTime localDateTime, String dateFormat) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(dateFormat);
return localDateTime.format(dateTimeFormatter);
}
/**
* Date
* LocalDate ==> java.util.Date
* LocalDateTime ( Date.from(ZonedDateTime.toInstant) )
*/
public static Date toUtilDate(Object date) {
if (date == null)
return null;
if (date instanceof java.sql.Date || date instanceof java.sql.Timestamp)
return new Date(((Date) date).getTime());
if (date instanceof Date)
return (Date) date;
if (date instanceof LocalDate)
return Date.from(((LocalDate) date).atStartOfDay(defaultZoneId).toInstant());
if (date instanceof LocalDateTime)
return Date.from(((LocalDateTime) date).atZone(defaultZoneId).toInstant());
if (date instanceof ZonedDateTime)
return Date.from(((ZonedDateTime) date).toInstant());
if (date instanceof Instant)
return Date.from((Instant) date);
throw new UnsupportedOperationException("Don't know hot to convert " + date.getClass().getName() + " to java.util.Date");
}
/**
* Date ==> LocalDate
* .toIns
* (ZonedDateTime)
*/
public static LocalDate DateToLocalDate(Date date) {
ZonedDateTime zonedDateTime = date.toInstant().atZone(defaultZoneId);
return zonedDateTime.toLocalDate();
}
/**
* Date ==> LocalDateTime
* (ZonedDateTime)
*/
public static LocalDateTime DateToLocalDateTime(Date date) {
ZonedDateTime zonedDateTime = date.toInstant().atZone(defaultZoneId);
return zonedDateTime.toLocalDateTime();
}
}