本文實例主要是關于Java8中的新特性,時間日期api的相關實例,具體如下:
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(); /** * 字符串轉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); } } /** * 字符串轉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轉Date * @param localDate * @return Date */ public static Date convertToDate(LocalDate localDate){ Instant instant = localDate.atStartOfDay().atZone(zone).toInstant(); return Date.from(instant); } /** * LocalDate轉Date * @param localDateTime * @return Date */ public static Date convertToDate(LocalDateTime localDateTime){ Instant instant = localDateTime.atZone(zone).toInstant(); return Date.from(instant); } /** * Date轉LocalDate * @param date * @return localDate */ public static LocalDate convertToLocalDate(Date date){ Instant instant = date.toInstant(); return convertToLocalDateTime(instant).toLocalDate(); } /** * Date轉LocalTime * @param date * @return localDate */ public static LocalTime convertToLocalTime(Date date){ Instant instant = date.toInstant(); return convertToLocalDateTime(instant).toLocalTime(); } /** * Date轉LocalDatetime * @param date * @return localDate */ public static LocalDateTime convertToLocalDateTime(Date date){ Instant instant = date.toInstant(); return convertToLocalDateTime(instant); } /** * Instant轉LocalDateTime * @param instant * @return */ public static LocalDateTime convertToLocalDateTime(Instant instant){ return LocalDateTime.ofInstant(instant, zone); } /** * LocalDateTime轉Instant * @param localDateTime * @return */ public static Instant convertToInstant(LocalDateTime localDateTime){ return localDateTime.atZone(zone).toInstant(); } /** * LocalDate轉Instant * @param localDate * @return */ public static Instant convertToInstant(LocalDate localDate){ return localDate.atStartOfDay(zone).toInstant(); } /** * LocalDate轉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); } /** * 設置年 * @param sourceDate * @param year * @return LocalDateTime */ public static LocalDateTime setYear(LocalDateTime sourceDate, Integer year){ return sourceDate.withYear(year); } /** * 設置月 * @param sourceDate * @param month * @return LocalDateTime */ public static LocalDateTime setMonth(LocalDateTime sourceDate, Integer month){ return sourceDate.withMonth(month); } /** * 設置天 * @param sourceDate * @param month * @return LocalDateTime */ public static LocalDateTime setDayOfMonth(LocalDateTime sourceDate, Integer dayOfMonth){ return sourceDate.withDayOfMonth(dayOfMonth); } /** * 設置小時 * @param sourceDate * @param hour * @return */ public static LocalDateTime setHour(LocalDateTime sourceDate,Integer hour){ return sourceDate.withHour(hour); } /** * 設置分鐘 * @param sourceDate * @param minute * @return */ public static LocalDateTime setMinute(LocalDateTime sourceDate,Integer minute){ return sourceDate.withMinute(minute); } /** * 設置秒 * @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); } /** * 修改時分秒 * @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); } /** * 計算相差的天數 * @param beginDate * @param endDate * @return */ public static int getInteverDays(LocalDate beginDate,LocalDate endDate){ Period period = Period.between(beginDate, endDate); return period.getDays(); } /** * 日期加減 * @param num 數量 * @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; } /** * 日期時分秒加 * @param num 數量 * @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; } /** * 時分秒加減 * @param num 數量 * @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); } |
代碼涉及時間日期類的使用等內容,具有簡單注釋,大家可自行參考。
總結
以上就是本文關于Java編程時間日期API實例解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
原文鏈接:http://www.cnblogs.com/ywqbj/p/5645910.html