Browse Source

添加时间转换方法

hanqingsong 3 years ago
parent
commit
49e58c9bbf

+ 1 - 1
src/main/java/com/unissoft/result/ResultEnum.java

@@ -12,7 +12,7 @@ public enum ResultEnum {
12 12
     /**
13 13
      * 操作失败!
14 14
      */
15
-    CODE_2(666, "操作失败!"),
15
+    CODE_2(600, "操作失败!"),
16 16
     /**
17 17
      * 调用xxx服务失败!
18 18
      */

+ 59 - 47
src/main/java/com/unissoft/utils/DateUtil.java

@@ -5,8 +5,16 @@ import org.apache.commons.lang3.time.DateUtils;
5 5
 import java.text.Format;
6 6
 import java.text.ParseException;
7 7
 import java.text.SimpleDateFormat;
8
+import java.time.LocalDate;
9
+import java.time.LocalDateTime;
10
+import java.time.ZoneId;
11
+import java.time.format.DateTimeFormatter;
12
+import java.time.temporal.WeekFields;
8 13
 import java.util.Calendar;
9 14
 import java.util.Date;
15
+import java.util.Locale;
16
+
17
+import static cn.hutool.core.date.DateUtil.format;
10 18
 
11 19
 /**
12 20
  * 时间工具类
@@ -154,6 +162,7 @@ public class DateUtil {
154 162
 
155 163
     /**
156 164
      * 获取具体指定的时间
165
+     *
157 166
      * @param date
158 167
      * @param hour
159 168
      * @param minute
@@ -165,13 +174,13 @@ public class DateUtil {
165 174
         c.setTime(date);
166 175
         c.setLenient(true);
167 176
 
168
-        if(null != hour) {
177
+        if (null != hour) {
169 178
             c.set(Calendar.HOUR_OF_DAY, hour);
170 179
         }
171
-        if(null != minute) {
180
+        if (null != minute) {
172 181
             c.set(Calendar.MINUTE, minute);
173 182
         }
174
-        if(null != second) {
183
+        if (null != second) {
175 184
             c.set(Calendar.SECOND, second);
176 185
         }
177 186
         c.set(Calendar.MILLISECOND, 0);
@@ -180,6 +189,7 @@ public class DateUtil {
180 189
 
181 190
     /**
182 191
      * 获取当前时间0秒的日期
192
+     *
183 193
      * @return
184 194
      */
185 195
     public static Date getCurrMinute() {
@@ -189,6 +199,7 @@ public class DateUtil {
189 199
 
190 200
     /**
191 201
      * 获取当前时间0分0秒的日期
202
+     *
192 203
      * @return
193 204
      */
194 205
     public static Date getCurrHour() {
@@ -199,6 +210,7 @@ public class DateUtil {
199 210
 
200 211
     /**
201 212
      * 获取当前日期 0时0分0秒 的日期
213
+     *
202 214
      * @return
203 215
      */
204 216
     public static Date getCurrDate() {
@@ -207,6 +219,7 @@ public class DateUtil {
207 219
 
208 220
     /**
209 221
      * 获取当前日期 hour时minute分second秒 的日期
222
+     *
210 223
      * @return
211 224
      */
212 225
     public static Date getCurrDate(Integer hour, Integer minute, Integer second) {
@@ -216,6 +229,7 @@ public class DateUtil {
216 229
 
217 230
     /**
218 231
      * 获取当前周星期一 0时0分0秒 的日期
232
+     *
219 233
      * @return
220 234
      */
221 235
     public static Date getFirstDateOfCurrWeek() {
@@ -224,6 +238,7 @@ public class DateUtil {
224 238
 
225 239
     /**
226 240
      * 获取当前周星期一 hour时minute分second秒 的日期
241
+     *
227 242
      * @return
228 243
      */
229 244
     public static Date getFirstDateOfCurrWeek(int hour, int minute, int second) {
@@ -244,6 +259,7 @@ public class DateUtil {
244 259
 
245 260
     /**
246 261
      * 获取当前月第一天 0时0分0秒 的日期
262
+     *
247 263
      * @return
248 264
      */
249 265
     public static Date getFirstDateOfCurrMonth() {
@@ -252,6 +268,7 @@ public class DateUtil {
252 268
 
253 269
     /**
254 270
      * 获取当前月第一天 hour时minute分second秒 的日期
271
+     *
255 272
      * @return
256 273
      */
257 274
     public static Date getFirstDateOfCurrMonth(int hour, int minute, int second) {
@@ -272,6 +289,7 @@ public class DateUtil {
272 289
 
273 290
     /**
274 291
      * 获取当前季度第一天 0时0分0秒 的日期
292
+     *
275 293
      * @return
276 294
      */
277 295
     public static Date getFirstDateOfCurrSeason() {
@@ -280,6 +298,7 @@ public class DateUtil {
280 298
 
281 299
     /**
282 300
      * 获取当前季度第一天 hour时minute分second秒 的日期
301
+     *
283 302
      * @return
284 303
      */
285 304
     public static Date getFirstDateOfCurrSeason(int hour, int minute, int second) {
@@ -303,6 +322,7 @@ public class DateUtil {
303 322
 
304 323
     /**
305 324
      * 获取当前年第一天 0时0分0秒 的日期
325
+     *
306 326
      * @return
307 327
      */
308 328
     public static Date getFirstDateOfCurrYear() {
@@ -311,6 +331,7 @@ public class DateUtil {
311 331
 
312 332
     /**
313 333
      * 获取当前年第一天 hour时minute分second秒 的日期
334
+     *
314 335
      * @return
315 336
      */
316 337
     public static Date getFirstDateOfCurrYear(int hour, int minute, int second) {
@@ -330,49 +351,9 @@ public class DateUtil {
330 351
     }
331 352
 
332 353
 
333
-
334
-
335
-    public static void main(String[] args) {
336
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
337
-//        System.out.println(sdf.format(getCurrMinute()));
338
-//        System.out.println(getCurrMinute());
339
-//
340
-//        System.out.println(sdf.format(getCurrHour()));
341
-//        System.out.println(getCurrHour());
342
-
343
-        System.out.println(sdf.format(getCurrDate(8,0,0)));
344
-        System.out.println(getCurrDate());
345
-//
346
-//        System.out.println(sdf.format(getFirstDateOfCurrWeek(8,0,0)));
347
-//        System.out.println(getFirstDateOfCurrWeek());
348
-//
349
-//        System.out.println(sdf.format(getFirstDateOfCurrMonth(8,0,0)));
350
-//        System.out.println(getFirstDateOfCurrMonth());
351
-//
352
-//        System.out.println(sdf.format(getFirstDateOfCurrSeason(8,0,0)));
353
-//        System.out.println(getFirstDateOfCurrSeason());
354
-//
355
-//        System.out.println(sdf.format(getFirstDateOfCurrYear(8,0,0)));
356
-//        System.out.println(getFirstDateOfCurrYear());
357
-//
358
-//        System.out.println(sdf.format(aheadOfYears(new Date(), 2)));
359
-//        System.out.println(sdf.format(aheadOfSeasons(new Date(), 1)));
360
-//        System.out.println(sdf.format(aheadOfMonths(new Date(), 1)));
361
-
362
-//        System.out.println(sdf.format(aheadOfWeeks(new Date(), 2)));
363
-//        System.out.println(sdf.format(aheadOfDays(new Date(), 1)));
364
-//        System.out.println(sdf.format(aheadOfHours(new Date(), 3)));
365
-//        System.out.println(sdf.format(aheadOfMinutes(new Date(), 80)));
366
-
367
-//        Date date = evenMinuteDate(new Date());
368
-//        System.out.println(sdf.format(date));
369
-
370
-        String cron = getCron(new Date());
371
-        System.out.println(cron);
372
-    }
373
-
374 354
     /**
375 355
      * 日期提前几年
356
+     *
376 357
      * @param date
377 358
      * @param years
378 359
      * @return
@@ -383,6 +364,7 @@ public class DateUtil {
383 364
 
384 365
     /**
385 366
      * 日期提前几个季度
367
+     *
386 368
      * @param date
387 369
      * @param seasons
388 370
      * @return
@@ -393,6 +375,7 @@ public class DateUtil {
393 375
 
394 376
     /**
395 377
      * 日期提前几个月
378
+     *
396 379
      * @param date
397 380
      * @param months
398 381
      * @return
@@ -403,6 +386,7 @@ public class DateUtil {
403 386
 
404 387
     /**
405 388
      * 日期提前几周
389
+     *
406 390
      * @param date
407 391
      * @param weeks
408 392
      * @return
@@ -413,6 +397,7 @@ public class DateUtil {
413 397
 
414 398
     /**
415 399
      * 日期提前几天
400
+     *
416 401
      * @param date
417 402
      * @param days
418 403
      * @return
@@ -423,6 +408,7 @@ public class DateUtil {
423 408
 
424 409
     /**
425 410
      * 日期提前几个小时
411
+     *
426 412
      * @param date
427 413
      * @param hours
428 414
      * @return
@@ -433,6 +419,7 @@ public class DateUtil {
433 419
 
434 420
     /**
435 421
      * 日期提前几分钟
422
+     *
436 423
      * @param date
437 424
      * @param minutes
438 425
      * @return
@@ -444,11 +431,12 @@ public class DateUtil {
444 431
 
445 432
     /**
446 433
      * 功能描述:日期转换cron表达式
434
+     *
447 435
      * @param date
448 436
      * @param dateFormat
449 437
      * @return
450 438
      */
451
-    public static String formatDateByPattern(Date date, String dateFormat){
439
+    public static String formatDateByPattern(Date date, String dateFormat) {
452 440
         String result = null;
453 441
         SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
454 442
         if (date != null) {
@@ -459,13 +447,37 @@ public class DateUtil {
459 447
 
460 448
     /**
461 449
      * 日期转换cron表达式
450
+     *
462 451
      * @param date
463 452
      * @return
464 453
      */
465
-    public static String getCron(Date  date){
466
-        String dateFormat="ss mm HH dd MM ? yyyy";
454
+    public static String getCron(Date date) {
455
+        String dateFormat = "ss mm HH dd MM ? yyyy";
467 456
         return formatDateByPattern(date, dateFormat);
468 457
     }
469 458
 
459
+    /**
460
+     * 格式化获取年
461
+     *
462
+     * @param date    时间
463
+     * @param pattern 格式类型 (yyyy-MM-dd HH:mm:ss)
464
+     * @return
465
+     */
466
+    public static String getYMDHMS(Date date, String pattern) {
467
+        return format(LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()), pattern);
468
+    }
469
+
470
+    /**
471
+     * 获取当前时间 为一年中的第多少周
472
+     *
473
+     * @param date
474
+     * @return
475
+     */
476
+    public static Integer getPresentWeek(Date date) {
477
+        Calendar calendar = Calendar.getInstance();
478
+        calendar.setFirstDayOfWeek(Calendar.MONDAY);
479
+        calendar.setTime(date);
480
+        return calendar.get(Calendar.WEEK_OF_YEAR);
481
+    }
470 482
 
471 483
 }