blob: f616139f7e5c7440ac17b2ad11d62e10472c6b43 (
plain)
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
|
package com.nis.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.SimpleTimeZone;
import java.util.TimeZone;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.log.Log;
public class DateUtil {
private static Log logger = Log.get();
public static Date getUTCTimeByConfigTimeZone() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(DateUtil.getConfigTimeZone(0));
String format = sdf.format(new Date());
Date parse = null;
try {
sdf.setTimeZone(TimeZone.getDefault());
parse = sdf.parse(format);
} catch (Exception e) {
logger.error(e);
}
return parse;
}
public static TimeZone getConfigTimeZone(int configTimeZone) {
int newTime = configTimeZone * 60 * 60 * 1000;
TimeZone timeZone;
String[] ids = TimeZone.getAvailableIDs(newTime);
if (ids.length == 0) {
timeZone = TimeZone.getDefault();
} else {
timeZone = new SimpleTimeZone(newTime, ids[0]);
}
return timeZone;
}
/**
* 偏移秒数
*
* @param date 日期
* @param offset 偏移秒数,正数向未来偏移,负数向历史偏移
* @return 偏移后的日期
*/
public static DateTime offsetSecond(Date date, int offset) {
return offset(date, DateField.SECOND, offset);
}
/**
* 获取指定日期偏移指定时间后的时间,生成的偏移日期不影响原日期
*
* @param date 基准日期
* @param dateField 偏移的粒度大小(小时、天、月等){@link DateField}
* @param offset 偏移量,正数为向后偏移,负数为向前偏移
* @return 偏移后的日期
*/
public static DateTime offset(Date date, DateField dateField, int offset) {
return dateNew(date).offset(dateField, offset);
}
/**
* 根据已有{@link Date} 产生新的{@link DateTime}对象
*
* @param date Date对象
* @return {@link DateTime}对象
* @since 4.3.1
*/
public static DateTime dateNew(Date date) {
return new DateTime(date);
}
}
|