Skip to content

Commit 710ec8d

Browse files
committed
1. 基于 JDK 8 time包的时间工具类
雨神相助 #bysocket
1 parent 47ef5d8 commit 710ec8d

File tree

1 file changed

+35
-38
lines changed

1 file changed

+35
-38
lines changed

src/org/javacore/time/TimeUtil.java

Lines changed: 35 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,15 @@
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

Comments
 (0)