Skip to content

Commit 4704754

Browse files
committed
1. 基于 JDK 8 time包的时间工具类
#bysocket
1 parent 50cd6f7 commit 4704754

File tree

2 files changed

+162
-12
lines changed

2 files changed

+162
-12
lines changed

src/org/javacore/collection/util/CollectionsT.java

+24-12
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,33 @@ public class CollectionsT{
2828
public static void main(String[] args){
2929
// 测试集合工具类Sort方法
3030
testSort();
31+
testAddAll();
3132
}
3233

3334
/**
3435
* 测试集合工具类Sort方法
3536
*/
36-
private static void testSort(){
37-
List<Integer> teams = new ArrayList<Integer>();
38-
teams.add(1);
39-
teams.add(3);
40-
teams.add(2);
41-
teams.add(4);
42-
// 调用集合工具类Sort方法
43-
Collections.sort(teams);
44-
45-
System.out.println("Teams:");
46-
System.out.print("\t" + teams + "\n");
47-
}
37+
private static void testSort(){
38+
List<Integer> list = new ArrayList<Integer>();
39+
list.add(1);
40+
list.add(3);
41+
list.add(2);
42+
list.add(4);
43+
// 调用集合工具类Sort方法
44+
Collections.sort(list);
45+
46+
System.out.println("list sorted:");
47+
System.out.print("\t" + list + "\n");
48+
}
49+
50+
private static void testAddAll() {
51+
List<String> list = new ArrayList<>();
52+
list.add("s2");
53+
list.add("s4");
54+
list.add("s1");
55+
list.add("s3");
56+
System.out.println(list);
57+
Collections.addAll(list, "s5","s7",null,"s9");
58+
System.out.println(list);
59+
}
4860
}

src/org/javacore/time/TimeUtil.java

+138
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
package org.javacore.time;
2+
3+
import java.time.LocalDateTime;
4+
import java.time.format.DateTimeFormatter;
5+
6+
/**
7+
* 基于 JDK 8 time包的时间工具类
8+
* <p/>
9+
* Created by bysocket on 16/8/23.
10+
*/
11+
public class TimeUtil {
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"};
33+
34+
/**
35+
* String 转时间
36+
*
37+
* @param timeStr
38+
* @return
39+
*/
40+
public final static LocalDateTime parseTime(String timeStr) {
41+
LocalDateTime dateTime = LocalDateTime.parse(timeStr,getDefaultDateTimeFormatter());
42+
return dateTime;
43+
}
44+
45+
/**
46+
* String 转时间
47+
*
48+
* @param timeStr
49+
* @param format 时间格式
50+
* @return
51+
*/
52+
public final static LocalDateTime parseTime(String timeStr, String format) {
53+
LocalDateTime dateTime = LocalDateTime.parse(timeStr,getDateTimeFormatter(format));
54+
return dateTime;
55+
}
56+
57+
/**
58+
* 时间转 String
59+
*
60+
* @param time
61+
* @return
62+
*/
63+
public final static String parseTime(LocalDateTime time) {
64+
return getDefaultDateTimeFormatter().format(time);
65+
}
66+
67+
/**
68+
* 时间转 String
69+
*
70+
* @param time
71+
* @param format 时间格式
72+
* @return
73+
*/
74+
public final static String parseTime(LocalDateTime time, String format) {
75+
return getDateTimeFormatter(format).format(time);
76+
}
77+
78+
/**
79+
* 获取当前时间
80+
*
81+
* @return
82+
*/
83+
public final static String getCurrentDatetime() {
84+
LocalDateTime now = LocalDateTime.now();
85+
return getDefaultDateTimeFormatter().format(now);
86+
}
87+
88+
/**
89+
* 获取当前时间
90+
*
91+
* @param format 时间格式
92+
* @return
93+
*/
94+
public final static String getCurrentDatetime(String format) {
95+
LocalDateTime now = LocalDateTime.now();
96+
return getDateTimeFormatter(format).format(now);
97+
}
98+
99+
/**
100+
* 获取默认时间格式
101+
*
102+
* @return
103+
*/
104+
private final static DateTimeFormatter getDefaultDateTimeFormatter() {
105+
return DateTimeFormatter.ofPattern(LONG_DATE_PATTERN_DEFAULT);
106+
}
107+
108+
/**
109+
* 获取时间格式
110+
*
111+
* @param format 时间格式
112+
* @return
113+
*/
114+
private final static DateTimeFormatter getDateTimeFormatter(String format) {
115+
return DateTimeFormatter.ofPattern(format);
116+
}
117+
118+
public static void main(String[] args) {
119+
// 当前时间
120+
System.out.println(getCurrentDatetime(SHORT_DATE_PATTERN_DEFAULT));
121+
System.out.println(getCurrentDatetime());
122+
System.out.println(getCurrentDatetime(LONG_DATE_PATTERN_WITH_MILSEC_DEFAULT));
123+
124+
// 时间转 String
125+
LocalDateTime dateTime = LocalDateTime.now();
126+
System.out.println(parseTime(dateTime));
127+
128+
LocalDateTime dateTime1 = LocalDateTime.of(2016,8,25,23,10,10);
129+
System.out.println(parseTime(dateTime1,LONG_DATE_PATTERN_DEFAULT));
130+
131+
// String 转时间
132+
String dateTimeStr = "2016-08-25 23:10:10";
133+
System.out.println(parseTime(dateTimeStr));
134+
135+
String dateTimeStr1 = "2016-08-25 23:10:10";
136+
System.out.println(parseTime(dateTimeStr1,LONG_DATE_PATTERN_DEFAULT));
137+
}
138+
}

0 commit comments

Comments
 (0)