DateUtils.java
3.64 KB
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
127
128
package com.diligrp.assistant.shared.util;
import com.diligrp.assistant.shared.Constants;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Date;
/**
* 日期格式转化工具类 - JDK1.8 TIME API
*/
public class DateUtils {
public static String formatDateTime(LocalDateTime when, String format) {
if (ObjectUtils.isNull(when)) {
return null;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return when.format(formatter);
}
public static String formatDateTime(LocalDateTime when) {
return formatDateTime(when, Constants.DATE_TIME_FORMAT);
}
public static String formatDate(LocalDate when, String format) {
if (ObjectUtils.isNull(when)) {
return null;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return when.format(formatter);
}
public static String formatDate(LocalDate when) {
return formatDate(when, Constants.DATE_FORMAT);
}
public static String formatNow(String format) {
return formatDateTime(LocalDateTime.now(), format);
}
public static String formatNow() {
return formatNow(Constants.DATE_TIME_FORMAT);
}
public static String format(Date date) {
return format(date, Constants.DATE_TIME_FORMAT);
}
public static LocalDateTime addDays(long amount) {
LocalDateTime localDateTime = LocalDateTime.now();
localDateTime.plusDays(amount);
return localDateTime;
}
public static String format(Date date, String format) {
if (ObjectUtils.isNull(date)) {
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
public static LocalDateTime parseDateTime(String datetimeStr, String format) {
if (ObjectUtils.isEmpty(datetimeStr)) {
return null;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return LocalDateTime.parse(datetimeStr, formatter);
}
public static LocalDateTime parseDateTime(String datetimeStr) {
return parseDateTime(datetimeStr, Constants.DATE_TIME_FORMAT);
}
public static LocalDate parseDate(String dateStr, String format) {
if (ObjectUtils.isEmpty(dateStr)) {
return null;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return LocalDate.parse(dateStr, formatter);
}
public static LocalDate parseDate(String dateStr) {
return parseDate(dateStr, Constants.DATE_FORMAT);
}
public static Date parse(String dateStr) {
return parse(dateStr, Constants.DATE_TIME_FORMAT);
}
public static Date parse(String dateStr, String format) {
if (ObjectUtils.isEmpty(dateStr)) {
return null;
}
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.parse(dateStr);
} catch (Exception ex) {
throw new IllegalArgumentException("Invalid date format", ex);
}
}
/**
* 获取时间戳
*/
public static long parseMilliSecond(LocalDateTime localDateTime){
return parseMilliSecond(localDateTime,null);
}
public static long parseMilliSecond(LocalDateTime localDateTime, String zoneNumStr){
//默认东八区
if (ObjectUtils.isEmpty(zoneNumStr)){
zoneNumStr = "+8";
}
return localDateTime.toInstant(ZoneOffset.of(zoneNumStr)).toEpochMilli();
}
}