10
10
*/
11
11
public final class TimeUtil {
12
12
13
- private TimeUtil () {
14
- }
15
-
16
- /**
17
- * 时间间隔之间的空格
18
- */
19
- private static final String SPACE_OF_TIME = " " ;
20
-
21
- /**
22
- * 获取默认时间格式: yyyy-MM-dd HH:mm:ss
23
- */
24
- private static final DateTimeFormatter defaultDateTimeFormatter = DateTimeFormatter .ofPattern (TimeFormat .LONG_DATE_PATTERN_LINE );
25
-
26
- /**
27
- * String 转时间
28
- *
29
- * @param timeStr
30
- * @return
31
- */
32
- public final static LocalDateTime parseTime (String timeStr ) {
33
- LocalDateTime dateTime = LocalDateTime .parse (timeStr , defaultDateTimeFormatter );
34
- return dateTime ;
35
- }
36
-
37
- /**
38
- * String 转时间
39
- *
40
- * @param timeStr
41
- * @param format 时间格式
42
- * @return
43
- */
44
- public final static LocalDateTime parseTime (String timeStr , String format ) {
45
- LocalDateTime dateTime = LocalDateTime .parse (timeStr , getDateTimeFormatter (format ));
46
- return dateTime ;
47
- }
48
-
49
- /**
50
- * 时间转 String
51
- *
52
- * @param time
53
- * @return
54
- */
55
- public final static String parseTime (LocalDateTime time ) {
56
- return defaultDateTimeFormatter .format (time );
57
- }
58
-
59
- /**
60
- * 时间转 String
61
- *
62
- * @param time
63
- * @param format 时间格式
64
- * @return
65
- */
66
- public final static String parseTime (LocalDateTime time , String format ) {
67
- return getDateTimeFormatter (format ).format (time );
68
- }
69
-
70
- /**
71
- * 获取当前时间
72
- *
73
- * @return
74
- */
75
- public final static String getCurrentDatetime () {
76
- LocalDateTime now = LocalDateTime .now ().withNano (0 );
77
- return now .toLocalDate () + SPACE_OF_TIME + now .toLocalTime ();
78
- }
79
-
80
- /**
81
- * 获取当前时间
82
- *
83
- * @param format 时间格式
84
- * @return
85
- */
86
- public final static String getCurrentDatetime (String format ) {
87
- LocalDateTime now = LocalDateTime .now ();
88
- return getDateTimeFormatter (format ).format (now );
89
- }
90
-
91
- /**
92
- * 获取时间格式
93
- *
94
- * @param format 时间格式
95
- * @return
96
- */
97
- private final static DateTimeFormatter getDateTimeFormatter (String format ) {
98
- return DateTimeFormatter .ofPattern (format );
99
- }
100
-
101
- public static void main (String [] args ) {
102
- // 当前时间
103
- System .out .println (getCurrentDatetime (TimeFormat .SHORT_DATE_PATTERN_LINE ));
104
- System .out .println (getCurrentDatetime ());
105
- System .out .println (getCurrentDatetime (TimeFormat .LONG_DATE_PATTERN_WITH_MILSEC_LINE ));
106
-
107
- // 时间转 String
108
- LocalDateTime dateTime = LocalDateTime .now ();
109
- System .out .println (parseTime (dateTime ));
110
-
111
- LocalDateTime dateTime1 = LocalDateTime .of (2016 , 8 , 25 , 23 , 10 , 10 );
112
- System .out .println (parseTime (dateTime1 , TimeFormat .LONG_DATE_PATTERN_LINE ));
113
-
114
- // String 转时间
115
- String dateTimeStr = "2016-08-25 23:10:10" ;
116
- System .out .println (parseTime (dateTimeStr ));
117
-
118
- String dateTimeStr1 = "2016-08-25 23:10:10" ;
119
- System .out .println (parseTime (dateTimeStr1 , TimeFormat .LONG_DATE_PATTERN_LINE ));
120
- }
13
+ /**
14
+ * 获取默认时间格式: yyyy-MM-dd HH:mm:ss
15
+ */
16
+ private static final DateTimeFormatter DEFAULT_DATETIME_FORMATTER = TimeFormat .LONG_DATE_PATTERN_LINE .formatter ;
17
+
18
+ private TimeUtil () {
19
+ // no construct function
20
+ }
21
+
22
+ /**
23
+ * String 转时间
24
+ *
25
+ * @param timeStr
26
+ * @return
27
+ */
28
+ public static LocalDateTime parseTime (String timeStr ) {
29
+ return LocalDateTime .parse (timeStr , DEFAULT_DATETIME_FORMATTER );
30
+ }
31
+
32
+ /**
33
+ * String 转时间
34
+ *
35
+ * @param timeStr
36
+ * @param format 时间格式
37
+ * @return
38
+ */
39
+ public static LocalDateTime parseTime (String timeStr , TimeFormat format ) {
40
+ return LocalDateTime .parse (timeStr , format .formatter );
41
+ }
42
+
43
+ /**
44
+ * 时间转 String
45
+ *
46
+ * @param time
47
+ * @return
48
+ */
49
+ public static String parseTime (LocalDateTime time ) {
50
+ return DEFAULT_DATETIME_FORMATTER .format (time );
51
+ }
52
+
53
+ /**
54
+ * 时间转 String
55
+ *
56
+ * @param time
57
+ * @param format 时间格式
58
+ * @return
59
+ */
60
+ public static String parseTime (LocalDateTime time , TimeFormat format ) {
61
+ return format .formatter .format (time );
62
+ }
63
+
64
+ /**
65
+ * 获取当前时间
66
+ *
67
+ * @return
68
+ */
69
+ public static String getCurrentDatetime () {
70
+ return DEFAULT_DATETIME_FORMATTER .format (LocalDateTime .now ());
71
+ }
72
+
73
+ /**
74
+ * 获取当前时间
75
+ *
76
+ * @param format 时间格式
77
+ * @return
78
+ */
79
+ public static String getCurrentDatetime (TimeFormat format ) {
80
+ return format .formatter .format (LocalDateTime .now ());
81
+ }
82
+
83
+ /**
84
+ * 时间格式
85
+ */
86
+ public enum TimeFormat {
87
+
88
+ /**
89
+ * 短时间格式
90
+ */
91
+ SHORT_DATE_PATTERN_LINE ("yyyy-MM-dd" ),
92
+ SHORT_DATE_PATTERN_SLASH ("yyyy/MM/dd" ),
93
+ SHORT_DATE_PATTERN_DOUBLE_SLASH ("yyyy\\ MM\\ dd" ),
94
+ SHORT_DATE_PATTERN_NONE ("yyyyMMdd" ),
95
+
96
+ /**
97
+ * 长时间格式
98
+ */
99
+ LONG_DATE_PATTERN_LINE ("yyyy-MM-dd HH:mm:ss" ),
100
+ LONG_DATE_PATTERN_SLASH ("yyyy/MM/dd HH:mm:ss" ),
101
+ LONG_DATE_PATTERN_DOUBLE_SLASH ("yyyy\\ MM\\ dd HH:mm:ss" ),
102
+ LONG_DATE_PATTERN_NONE ("yyyyMMdd HH:mm:ss" ),
103
+
104
+ /**
105
+ * 长时间格式 带毫秒
106
+ */
107
+ LONG_DATE_PATTERN_WITH_MILSEC_LINE ("yyyy-MM-dd HH:mm:ss.SSS" ),
108
+ LONG_DATE_PATTERN_WITH_MILSEC_SLASH ("yyyy/MM/dd HH:mm:ss.SSS" ),
109
+ LONG_DATE_PATTERN_WITH_MILSEC_DOUBLE_SLASH ("yyyy\\ MM\\ dd HH:mm:ss.SSS" ),
110
+ LONG_DATE_PATTERN_WITH_MILSEC_NONE ("yyyyMMdd HH:mm:ss.SSS" );
111
+
112
+ private transient DateTimeFormatter formatter ;
113
+
114
+ TimeFormat (String pattern ) {
115
+ formatter = DateTimeFormatter .ofPattern (pattern );
116
+ }
117
+ }
121
118
}
122
-
123
- /**
124
- * 时间格式
125
- *
126
- */
127
- class TimeFormat {
128
-
129
- /**
130
- * 短时间格式
131
- */
132
- public static final String SHORT_DATE_PATTERN_LINE = "yyyy-MM-dd" ;
133
- public static final String SHORT_DATE_PATTERN_SLASH = "yyyy/MM/dd" ;
134
- public static final String SHORT_DATE_PATTERN_DOUBLE_SLASH = "yyyy\\ MM\\ dd" ;
135
- public static final String SHORT_DATE_PATTERN_NONE = "yyyyMMdd" ;
136
-
137
- /**
138
- * 长时间格式
139
- */
140
- public static final String LONG_DATE_PATTERN_LINE = "yyyy-MM-dd HH:mm:ss" ;
141
- public static final String LONG_DATE_PATTERN_SLASH = "yyyy/MM/dd HH:mm:ss" ;
142
- public static final String LONG_DATE_PATTERN_DOUBLE_SLASH = "yyyy\\ MM\\ dd HH:mm:ss" ;
143
- public static final String LONG_DATE_PATTERN_NONE = "yyyyMMdd HH:mm:ss" ;
144
-
145
- /**
146
- * 长时间格式 带毫秒
147
- */
148
- public static final String LONG_DATE_PATTERN_WITH_MILSEC_LINE = "yyyy-MM-dd HH:mm:ss.SSS" ;
149
- public static final String LONG_DATE_PATTERN_WITH_MILSEC_SLASH = "yyyy/MM/dd HH:mm:ss.SSS" ;
150
- public static final String LONG_DATE_PATTERN_WITH_MILSEC_DOUBLE_SLASH = "yyyy\\ MM\\ dd HH:mm:ss.SSS" ;
151
- public static final String LONG_DATE_PATTERN_WITH_MILSEC_NONE = "yyyyMMdd HH:mm:ss.SSS" ;
152
- }
0 commit comments