8
8
* <p/>
9
9
* Created by bysocket on 16/8/23.
10
10
*/
11
- public class TimeUtil {
11
+ public final class TimeUtil {
12
12
13
- /** 默认时间格式 */
14
- private static final String SHORT_DATE_PATTERN_DEFAULT = "yyyy-MM-dd" ;
15
- private static final String LONG_DATE_PATTERN_DEFAULT = "yyyy-MM-dd HH:mm:ss" ;
16
- private static final String LONG_DATE_PATTERN_WITH_MILSEC_DEFAULT = "yyyy-MM-dd HH:mm:ss.SSS" ;
17
-
18
- /** 短时间格式 : 2016-08-25 */
19
- private static final String [] SHORT_DATE_PATTERN = { "yyyy-MM-dd" ,
20
- "yyyy/MM/dd" ,
21
- "yyyy\\ MM\\ dd" ,
22
- "yyyyMMdd" };
23
- /** 长时间格式 : 2016-08-25 20:28:46 */
24
- private static final String [] LONG_DATE_PATTERN = {"yyyy-MM-dd HH:mm:ss" ,
25
- "yyyy/MM/dd HH:mm:ss" ,
26
- "yyyy\\ MM\\ dd HH:mm:ss" ,
27
- "yyyyMMddHHmmss" };
28
- /** 长时间格式 ( 带毫秒 ) : 2016-08-25 20:34:48.956 */
29
- private static final String [] LONG_DATE_PATTERN_WITH_MILSEC = { "yyyy-MM-dd HH:mm:ss.SSS" ,
30
- "yyyy/MM/dd HH:mm:ss.SSS" ,
31
- "yyyy\\ MM\\ dd HH:mm:ss.SSS" ,
32
- "yyyyMMddHHmmssSSS" };
13
+ private TimeUtil () {}
14
+
15
+ /** 时间间隔之间的空格 */
16
+ private static final String SPACE_OF_TIME = " " ;
17
+
18
+ /** 获取默认时间格式: yyyy-MM-dd HH:mm:ss */
19
+ private static final DateTimeFormatter defaultDateTimeFormatter = DateTimeFormatter .ofPattern (TimeFormat .LONG_DATE_PATTERN_LINE );
33
20
34
21
/**
35
22
* String 转时间
@@ -38,7 +25,7 @@ public class TimeUtil {
38
25
* @return
39
26
*/
40
27
public final static LocalDateTime parseTime (String timeStr ) {
41
- LocalDateTime dateTime = LocalDateTime .parse (timeStr ,getDefaultDateTimeFormatter () );
28
+ LocalDateTime dateTime = LocalDateTime .parse (timeStr ,defaultDateTimeFormatter );
42
29
return dateTime ;
43
30
}
44
31
@@ -61,7 +48,7 @@ public final static LocalDateTime parseTime(String timeStr, String format) {
61
48
* @return
62
49
*/
63
50
public final static String parseTime (LocalDateTime time ) {
64
- return getDefaultDateTimeFormatter () .format (time );
51
+ return defaultDateTimeFormatter .format (time );
65
52
}
66
53
67
54
/**
@@ -81,8 +68,8 @@ public final static String parseTime(LocalDateTime time, String format) {
81
68
* @return
82
69
*/
83
70
public final static String getCurrentDatetime () {
84
- LocalDateTime now = LocalDateTime .now ();
85
- return getDefaultDateTimeFormatter (). format ( now );
71
+ LocalDateTime now = LocalDateTime .now (). withNano ( 0 ) ;
72
+ return now . toLocalDate () + SPACE_OF_TIME + now . toLocalTime ( );
86
73
}
87
74
88
75
/**
@@ -96,15 +83,6 @@ public final static String getCurrentDatetime(String format) {
96
83
return getDateTimeFormatter (format ).format (now );
97
84
}
98
85
99
- /**
100
- * 获取默认时间格式
101
- *
102
- * @return
103
- */
104
- private final static DateTimeFormatter getDefaultDateTimeFormatter () {
105
- return DateTimeFormatter .ofPattern (LONG_DATE_PATTERN_DEFAULT );
106
- }
107
-
108
86
/**
109
87
* 获取时间格式
110
88
*
@@ -117,22 +95,41 @@ private final static DateTimeFormatter getDateTimeFormatter(String format) {
117
95
118
96
public static void main (String [] args ) {
119
97
// 当前时间
120
- System .out .println (getCurrentDatetime (SHORT_DATE_PATTERN_DEFAULT ));
98
+ System .out .println (getCurrentDatetime (TimeFormat . SHORT_DATE_PATTERN_LINE ));
121
99
System .out .println (getCurrentDatetime ());
122
- System .out .println (getCurrentDatetime (LONG_DATE_PATTERN_WITH_MILSEC_DEFAULT ));
100
+ System .out .println (getCurrentDatetime (TimeFormat . LONG_DATE_PATTERN_WITH_MILSEC_LINE ));
123
101
124
102
// 时间转 String
125
103
LocalDateTime dateTime = LocalDateTime .now ();
126
104
System .out .println (parseTime (dateTime ));
127
105
128
106
LocalDateTime dateTime1 = LocalDateTime .of (2016 ,8 ,25 ,23 ,10 ,10 );
129
- System .out .println (parseTime (dateTime1 ,LONG_DATE_PATTERN_DEFAULT ));
107
+ System .out .println (parseTime (dateTime1 ,TimeFormat . LONG_DATE_PATTERN_LINE ));
130
108
131
109
// String 转时间
132
110
String dateTimeStr = "2016-08-25 23:10:10" ;
133
111
System .out .println (parseTime (dateTimeStr ));
134
112
135
113
String dateTimeStr1 = "2016-08-25 23:10:10" ;
136
- System .out .println (parseTime (dateTimeStr1 ,LONG_DATE_PATTERN_DEFAULT ));
114
+ System .out .println (parseTime (dateTimeStr1 ,TimeFormat . LONG_DATE_PATTERN_LINE ));
137
115
}
138
116
}
117
+
118
+ class TimeFormat {
119
+
120
+ /** 默认时间格式 */
121
+ public static final String SHORT_DATE_PATTERN_LINE = "yyyy-MM-dd" ;
122
+ public static final String SHORT_DATE_PATTERN_SLASH = "yyyy/MM/dd" ;
123
+ public static final String SHORT_DATE_PATTERN_DOUBLE_SLASH = "yyyy\\ MM\\ dd" ;
124
+ public static final String SHORT_DATE_PATTERN_NONE = "yyyyMMdd" ;
125
+
126
+ public static final String LONG_DATE_PATTERN_LINE = "yyyy-MM-dd HH:mm:ss" ;
127
+ public static final String LONG_DATE_PATTERN_SLASH = "yyyy/MM/dd HH:mm:ss" ;
128
+ public static final String LONG_DATE_PATTERN_DOUBLE_SLASH = "yyyy\\ MM\\ dd HH:mm:ss" ;
129
+ public static final String LONG_DATE_PATTERN_NONE = "yyyyMMdd HH:mm:ss" ;
130
+
131
+ public static final String LONG_DATE_PATTERN_WITH_MILSEC_LINE = "yyyy-MM-dd HH:mm:ss.SSS" ;
132
+ public static final String LONG_DATE_PATTERN_WITH_MILSEC_SLASH = "yyyy/MM/dd HH:mm:ss.SSS" ;
133
+ public static final String LONG_DATE_PATTERN_WITH_MILSEC_DOUBLE_SLASH = "yyyy\\ MM\\ dd HH:mm:ss.SSS" ;
134
+ public static final String LONG_DATE_PATTERN_WITH_MILSEC_NONE = "yyyyMMdd HH:mm:ss.SSS" ;
135
+ }
0 commit comments