-
Notifications
You must be signed in to change notification settings - Fork 2
/
TimeUtil.java
126 lines (110 loc) · 3.23 KB
/
TimeUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/**
* <html>
* <body>
* <P> Copyright 1994 JsonInternational</p>
* <p> All rights reserved. - https://github.com/Jasonandy/Java-Core-Advanced </p>
* <p> Created by Jason</p>
* </body>
* </html>
*/
package cn.ucaner.core.time;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* @Package:cn.ucaner.core.time
* @ClassName:TimeUtil
* @Description: <p> 基于 JDK 8 time包的时间工具类</p>
* @Author: - Jason
* @CreatTime:2018年4月5日 下午12:17:55
* @Modify By:
* @ModifyTime: 2018年4月5日
* @Modify marker:
* @version V1.0
*/
public final class TimeUtil {
/**
* 获取默认时间格式: yyyy-MM-dd HH:mm:ss
*/
private static final DateTimeFormatter DEFAULT_DATETIME_FORMATTER = TimeFormat.LONG_DATE_PATTERN_LINE.formatter;
private TimeUtil() {
}
/**
* String 转时间
* @param timeStr
* @return
*/
public static LocalDateTime parseTime(String timeStr) {
return LocalDateTime.parse(timeStr, DEFAULT_DATETIME_FORMATTER);
}
/**
* String 转时间
* @param timeStr
* @param format 时间格式
* @return
*/
public static LocalDateTime parseTime(String timeStr, TimeFormat format) {
return LocalDateTime.parse(timeStr, format.formatter);
}
/**
* 时间转 String
* @param time
* @return
*/
public static String parseTime(LocalDateTime time) {
return DEFAULT_DATETIME_FORMATTER.format(time);
}
/**
* 时间转 String
* @param time
* @param format 时间格式
* @return
*/
public static String parseTime(LocalDateTime time, TimeFormat format) {
return format.formatter.format(time);
}
/**
* 获取当前时间
* @return
*/
public static String getCurrentDatetime() {
return DEFAULT_DATETIME_FORMATTER.format(LocalDateTime.now());
}
/**
* 获取当前时间
* @param format 时间格式
* @return
*/
public static String getCurrentDatetime(TimeFormat format) {
return format.formatter.format(LocalDateTime.now());
}
/**
* 时间格式
*/
public enum TimeFormat {
/**
* 短时间格式
*/
SHORT_DATE_PATTERN_LINE("yyyy-MM-dd"),
SHORT_DATE_PATTERN_SLASH("yyyy/MM/dd"),
SHORT_DATE_PATTERN_DOUBLE_SLASH("yyyy\\MM\\dd"),
SHORT_DATE_PATTERN_NONE("yyyyMMdd"),
/**
* 长时间格式
*/
LONG_DATE_PATTERN_LINE("yyyy-MM-dd HH:mm:ss"),
LONG_DATE_PATTERN_SLASH("yyyy/MM/dd HH:mm:ss"),
LONG_DATE_PATTERN_DOUBLE_SLASH("yyyy\\MM\\dd HH:mm:ss"),
LONG_DATE_PATTERN_NONE("yyyyMMdd HH:mm:ss"),
/**
* 长时间格式 带毫秒
*/
LONG_DATE_PATTERN_WITH_MILSEC_LINE("yyyy-MM-dd HH:mm:ss.SSS"),
LONG_DATE_PATTERN_WITH_MILSEC_SLASH("yyyy/MM/dd HH:mm:ss.SSS"),
LONG_DATE_PATTERN_WITH_MILSEC_DOUBLE_SLASH("yyyy\\MM\\dd HH:mm:ss.SSS"),
LONG_DATE_PATTERN_WITH_MILSEC_NONE("yyyyMMdd HH:mm:ss.SSS");
private transient DateTimeFormatter formatter;
TimeFormat(String pattern) {
formatter = DateTimeFormatter.ofPattern(pattern);
}
}
}