1010 */
1111public final class TimeUtil {
1212
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+ }
121118}
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