本文實(shí)例主要是關(guān)于Java8中的新特性,時(shí)間日期api的相關(guān)實(shí)例,具體如下:
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
|
package com.effective.common.base.date; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.Period; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.Date; /** * 日期工具類 * @author yanweiqi * @since 2016-5-6 * */ public class LocalDateUtils { private static ZoneId zone = ZoneId.systemDefault(); /** * 字符串轉(zhuǎn)Date * @param date * @return * @throws Exception */ public static Date convertToDate(String date) throws Exception{ LocalDate localDate = null ; if ( null == date){ throw new NullPointerException( "date isn't null" ); } else { localDate = LocalDate.parse(date); return convertToDate(localDate); } } /** * 字符串轉(zhuǎn)LocalDateTime * @param date * @return localDateTime */ public static LocalDateTime convertToLocalDateTime(String date){ LocalDateTime localDateTime = null ; if ( null == date){ throw new NullPointerException( "date isn't null" ); } else { localDateTime = LocalDateTime.parse(date); return localDateTime; } } /** * LocalDate轉(zhuǎn)Date * @param localDate * @return Date */ public static Date convertToDate(LocalDate localDate){ Instant instant = localDate.atStartOfDay().atZone(zone).toInstant(); return Date.from(instant); } /** * LocalDate轉(zhuǎn)Date * @param localDateTime * @return Date */ public static Date convertToDate(LocalDateTime localDateTime){ Instant instant = localDateTime.atZone(zone).toInstant(); return Date.from(instant); } /** * Date轉(zhuǎn)LocalDate * @param date * @return localDate */ public static LocalDate convertToLocalDate(Date date){ Instant instant = date.toInstant(); return convertToLocalDateTime(instant).toLocalDate(); } /** * Date轉(zhuǎn)LocalTime * @param date * @return localDate */ public static LocalTime convertToLocalTime(Date date){ Instant instant = date.toInstant(); return convertToLocalDateTime(instant).toLocalTime(); } /** * Date轉(zhuǎn)LocalDatetime * @param date * @return localDate */ public static LocalDateTime convertToLocalDateTime(Date date){ Instant instant = date.toInstant(); return convertToLocalDateTime(instant); } /** * Instant轉(zhuǎn)LocalDateTime * @param instant * @return */ public static LocalDateTime convertToLocalDateTime(Instant instant){ return LocalDateTime.ofInstant(instant, zone); } /** * LocalDateTime轉(zhuǎn)Instant * @param localDateTime * @return */ public static Instant convertToInstant(LocalDateTime localDateTime){ return localDateTime.atZone(zone).toInstant(); } /** * LocalDate轉(zhuǎn)Instant * @param localDate * @return */ public static Instant convertToInstant(LocalDate localDate){ return localDate.atStartOfDay(zone).toInstant(); } /** * LocalDate轉(zhuǎn)LocalDateTime * @param localDate * @return LocalDateTime */ public static LocalDateTime convertToLocalDateTime(LocalDate localDate){ return localDate.atStartOfDay(); } /** * 日周期格式化 * @param localDateTime * @param formatStyle * @return */ public static String formatter(LocalDateTime localDateTime, String formatStyle){ return DateTimeFormatter.ofPattern(formatStyle).format(localDateTime); } /** * 設(shè)置年 * @param sourceDate * @param year * @return LocalDateTime */ public static LocalDateTime setYear(LocalDateTime sourceDate, Integer year){ return sourceDate.withYear(year); } /** * 設(shè)置月 * @param sourceDate * @param month * @return LocalDateTime */ public static LocalDateTime setMonth(LocalDateTime sourceDate, Integer month){ return sourceDate.withMonth(month); } /** * 設(shè)置天 * @param sourceDate * @param month * @return LocalDateTime */ public static LocalDateTime setDayOfMonth(LocalDateTime sourceDate, Integer dayOfMonth){ return sourceDate.withDayOfMonth(dayOfMonth); } /** * 設(shè)置小時(shí) * @param sourceDate * @param hour * @return */ public static LocalDateTime setHour(LocalDateTime sourceDate,Integer hour){ return sourceDate.withHour(hour); } /** * 設(shè)置分鐘 * @param sourceDate * @param minute * @return */ public static LocalDateTime setMinute(LocalDateTime sourceDate,Integer minute){ return sourceDate.withMinute(minute); } /** * 設(shè)置秒 * @param sourceDate * @param second * @return */ public static LocalDateTime setSecond(LocalDateTime sourceDate,Integer second){ return sourceDate.withSecond(second); } /** * 修改年月日 * @param sourceDate * @param year * @param month * @param dayOfMonth * @return */ public static LocalDateTime setYMD(LocalDateTime sourceDate, Integer year, Integer month, Integer dayOfMonth) { return sourceDate.withYear(year).withMonth(month).withDayOfMonth(dayOfMonth); } /** * 修改時(shí)分秒 * @param sourceDate * @param hour * @param minute * @param second * @return */ public static LocalDateTime setHMS(LocalDateTime sourceDate,Integer hour, Integer minute, Integer second) { return sourceDate.withHour(hour).withMinute(minute).withSecond(second); } /** * 計(jì)算相差的天數(shù) * @param beginDate * @param endDate * @return */ public static int getInteverDays(LocalDate beginDate,LocalDate endDate){ Period period = Period.between(beginDate, endDate); return period.getDays(); } /** * 日期加減 * @param num 數(shù)量 * @param unit 單位 * @param LocalDate 原日期 * @return LocalDate 增加后的日期 */ @SuppressWarnings ( "static-access" ) public static LocalDate addLocalDate( long num,ChronoUnit unit, final LocalDate localDate){ LocalDate resultDate; if (num > 0 ){ resultDate = localDate.now().plus(num, unit); } else { resultDate = localDate.now().minus(Math.abs(num), unit); } return resultDate; } /** * 日期時(shí)分秒加 * @param num 數(shù)量 * @param unit 單位 * @param localDateTime 原日期 * @return LocalDateTime 增加后的日期 */ @SuppressWarnings ( "static-access" ) public static LocalDateTime addLocalDateTime( long num,ChronoUnit unit,LocalDateTime localDateTime){ LocalDateTime resultDateTime; if (num > 0 ){ resultDateTime = localDateTime.now().plus(num, unit); } else { resultDateTime = localDateTime.now().minus(Math.abs(num),unit); } return resultDateTime; } /** * 時(shí)分秒加減 * @param num 數(shù)量 * @param unit 單位 * @param localTime 原日期 * @return LocalDateTime 增加后的日期 */ @SuppressWarnings ( "static-access" ) public static LocalTime addLocalTime( long num,ChronoUnit unit,LocalTime localTime){ LocalTime resultTime; if (num > 0 ){ resultTime = localTime.now().plus(num, unit); } else { resultTime = localTime.now().minus(Math.abs(num), unit); } return resultTime; } public static void main(String[] args){ LocalDateTime time = LocalDateTime.now(); String rr = formatter(time, "yyyy-MM-dd HH:mm:ss" ); System.out.println(rr); LocalDateTime time2 = addLocalDateTime(- 2 , ChronoUnit.HOURS, time); String yy = formatter(time2, "yyyy-MM-dd HH:mm:ss" ); System.out.println(yy); } |
代碼涉及時(shí)間日期類的使用等內(nèi)容,具有簡(jiǎn)單注釋,大家可自行參考。
總結(jié)
以上就是本文關(guān)于Java編程時(shí)間日期API實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
原文鏈接:http://www.cnblogs.com/ywqbj/p/5645910.html