88 * <p/>
99 * Created by bysocket on 16/8/23.
1010 */
11- public class TimeUtil {
11+ public final class TimeUtil {
1212
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 );
3320
3421 /**
3522 * String 转时间
@@ -38,7 +25,7 @@ public class TimeUtil {
3825 * @return
3926 */
4027 public final static LocalDateTime parseTime (String timeStr ) {
41- LocalDateTime dateTime = LocalDateTime .parse (timeStr ,getDefaultDateTimeFormatter () );
28+ LocalDateTime dateTime = LocalDateTime .parse (timeStr ,defaultDateTimeFormatter );
4229 return dateTime ;
4330 }
4431
@@ -61,7 +48,7 @@ public final static LocalDateTime parseTime(String timeStr, String format) {
6148 * @return
6249 */
6350 public final static String parseTime (LocalDateTime time ) {
64- return getDefaultDateTimeFormatter () .format (time );
51+ return defaultDateTimeFormatter .format (time );
6552 }
6653
6754 /**
@@ -81,8 +68,8 @@ public final static String parseTime(LocalDateTime time, String format) {
8168 * @return
8269 */
8370 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 ( );
8673 }
8774
8875 /**
@@ -96,15 +83,6 @@ public final static String getCurrentDatetime(String format) {
9683 return getDateTimeFormatter (format ).format (now );
9784 }
9885
99- /**
100- * 获取默认时间格式
101- *
102- * @return
103- */
104- private final static DateTimeFormatter getDefaultDateTimeFormatter () {
105- return DateTimeFormatter .ofPattern (LONG_DATE_PATTERN_DEFAULT );
106- }
107-
10886 /**
10987 * 获取时间格式
11088 *
@@ -117,22 +95,41 @@ private final static DateTimeFormatter getDateTimeFormatter(String format) {
11795
11896 public static void main (String [] args ) {
11997 // 当前时间
120- System .out .println (getCurrentDatetime (SHORT_DATE_PATTERN_DEFAULT ));
98+ System .out .println (getCurrentDatetime (TimeFormat . SHORT_DATE_PATTERN_LINE ));
12199 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 ));
123101
124102 // 时间转 String
125103 LocalDateTime dateTime = LocalDateTime .now ();
126104 System .out .println (parseTime (dateTime ));
127105
128106 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 ));
130108
131109 // String 转时间
132110 String dateTimeStr = "2016-08-25 23:10:10" ;
133111 System .out .println (parseTime (dateTimeStr ));
134112
135113 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 ));
137115 }
138116}
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