1 packageorg.fool.util;2
3 importjava.time.Instant;4 importjava.time.LocalDate;5 importjava.time.LocalDateTime;6 importjava.time.LocalTime;7 importjava.time.ZoneId;8 importjava.time.format.DateTimeFormatter;9 importjava.util.Date;10
11 public classDateUtils {12 public static final String DATE_FORMAT_YYYY_MM_DD = "yyyy-MM-dd";13 public static final String DATE_FORMAT_YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";14 public static final String DATE_FORMAT_YYYY_MM_DD_HH_MM_SS_SSS = "yyyy-MM-dd HH:mm:ss.SSS";15
16 /**
17 * get the current date18 */
19 public staticDate getCurrentDate() {20 return newDate();21 }22
23 /**
24 * get the beginning of current date25 */
26 public staticDate getStartCurrentDate() {27 LocalDateTime start =LocalDateTime.of(LocalDate.now(), LocalTime.MIN);28 returnlocalDateTimeToDate(start);29 }30
31 /**
32 * get the ending of current date33 */
34 public staticDate getEndCurrentDate() {35 LocalDateTime end =LocalDateTime.of(LocalDate.now(), LocalTime.MAX);36 returnlocalDateTimeToDate(end);37 }38
39 /**
40 * get the previous date41 */
42 public static Date getPreviousDate(longdays) {43 LocalDate localDate =LocalDate.now().minusDays(days);44 returnlocalDateToDate(localDate);45 }46
47 /**
48 * get the future date49 */
50 public static Date getFutureDate(longdays) {51 LocalDate localDate =LocalDate.now().plusDays(days);52 returnlocalDateToDate(localDate);53 }54
55 /**
56 * LocalDate => Date57 */
58 public staticDate localDateToDate(LocalDate localDate) {59 returnDate.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());60 }61
62 /**
63 * LocalDateTime => Date64 */
65 public staticDate localDateTimeToDate(LocalDateTime localDateTime) {66 returnDate.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());67 }68
69 /**
70 * Date => LocalDate71 */
72 public staticLocalDate dateToLocalDate(Date date) {73 returnInstant.ofEpochMilli(date.getTime()).atZone(ZoneId.systemDefault()).toLocalDate();74 }75
76 /**
77 * Date => LocalDateTime78 */
79 public staticLocalDateTime dateToLocalDateTime(Date date) {80 returnInstant.ofEpochMilli(date.getTime()).atZone(ZoneId.systemDefault()).toLocalDateTime();81 }82
83 /**
84 * Date => String85 */
86 public staticString dateToString(Date date, String format) {87 DateTimeFormatter formatter =DateTimeFormatter.ofPattern(format);88 returndate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().format(formatter);89 }90
91 /**
92 * dateString => Date93 */
94 public staticDate dateStringToDate(String dateStr, String format) {95 DateTimeFormatter dateTimeFormatter =DateTimeFormatter.ofPattern(format);96 LocalDate localDate =LocalDate.parse(dateStr, dateTimeFormatter);97 returnDate.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());98 }99
100 /**
101 * dateTimeString => Date102 */
103 public staticDate dateTimeStringToDate(String dateTimeStr, String format) {104 DateTimeFormatter dateTimeFormatter =DateTimeFormatter.ofPattern(format);105 LocalDateTime localDateTime =LocalDateTime.parse(dateTimeStr, dateTimeFormatter);106 returnDate.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());107 }108
109 /**
110 * dateString => LocalDate111 */
112 public staticLocalDate dateStringToLocalDate(String dateStr, String format) {113 DateTimeFormatter dateTimeFormatter =DateTimeFormatter.ofPattern(format);114 returnLocalDate.parse(dateStr, dateTimeFormatter);115 }116
117 /**
118 * dateTimeString => LocalDate119 */
120 public staticLocalDateTime dateTimeStringToLocalDateTime(String dateTimeStr, String format) {121 DateTimeFormatter dateTimeFormatter =DateTimeFormatter.ofPattern(format);122 returnLocalDateTime.parse(dateTimeStr, dateTimeFormatter);123 }124 }