1 /**
2 *
3 * @note
4 * @author zhouyy <br>
5 * Apr 14, 2017 5:21:12 PM
6 * @version
7 */
8 package com.bytter.util;
9
10 import java.text.ParseException;
11 import java.text.SimpleDateFormat;
12 import java.time.LocalDate;
13 import java.time.LocalDateTime;
14 import java.time.format.DateTimeFormatter;
15 import java.time.temporal.TemporalAdjusters;
16 import java.util.Date;
17
18 /**
19 *
20 * @note
21 * @author zhouyy <br>
22 * Apr 14, 2017 5:21:12 PM
23 * @version
24 */
25 public class NewDate {
26
27 /**
28 * 获取当前日期 格式 LocalDate
29 *
30 * @return
31 */
32 public static LocalDate getLocalDateNow() {
33 return LocalDate.now();
34 }
35
36
37 /**
38 * LocalDate 转 String
39 *
40 * @param date
41 * @return
42 */
43 public static String getLocalDateStr(LocalDate date, String pattern) {
44 return date.format(DateTimeFormatter.ofPattern(pattern));
45 }
46
47 /**
48 * 取得日期所在月的最后一天 LocalDate
49 *
50 * @param date
51 * @return String
52 */
53 public static String getLastMonthDay(LocalDate date) {
54 return date.with(TemporalAdjusters.lastDayOfMonth()).toString();
55 }
56
57
58 /**
59 * 把字符串转成 LocalDate <br>
60 * strDate 格式就是 aMask
61 *
62 * @param aMask
63 * @param strDate
64 * @return
65 */
66 public static LocalDate getLocalDate(String aMask, String strDate) {
67 return LocalDate.parse(strDate, DateTimeFormatter.ofPattern(aMask));
68 }
69
70 /**
71 * java.sql.Date 转 LocaDate<br>
72 * jdk1.8
73 *
74 * @param date
75 * @return
76 */
77 public static LocalDate sqlDateTolocalDate(java.sql.Date date) {
78 return date.toLocalDate();
79 }
80
81 /**
82 * java.util.Date 转 LocaDate
83 *
84 * @param date
85 * @return
86 */
87 public static LocalDate DateTolocalDate(Date date) {
88 return sqlDateTolocalDate(new java.sql.Date(date.getTime()));
89 }
90
91 /**
92 * LocalDate 转 java.util.Date
93 *
94 * @param date
95 * @return
96 */
97 public static Date localDateToDate(LocalDate date) {
98 try {
99 return new SimpleDateFormat("yyyy-MM-dd").parse(date.toString());
100 } catch (ParseException e) {
101 System.out.println("LocalDate类型 日期转 Date 报错");
102 e.printStackTrace();
103 }
104 return null;
105 }
106
107 /**
108 * LocalDate 转 java.sql.Date
109 *
110 * @param date
111 * @return
112 */
113 public static java.sql.Date localDateToSqlDate(LocalDate date) {
114 return new java.sql.Date(localDateToDate(date).getTime());
115 }
116
117 /**
118 * 两日期间隔天数
119 *
120 * @param date
121 * @param compareDate
122 * @return
123 */
124 public static int getSubDayOfDate(LocalDate date, LocalDate compareDate) {
125 return (int) (date.toEpochDay() - compareDate.toEpochDay());
126 }
127
128 /**
129 * date 加/减 天 对应的日期
130 *
131 * @param date
132 * @param day
133 * @return
134 */
135 public static LocalDate getBeforeAfterDate(LocalDate date, int day) {
136 return date.plusDays(day);
137 }
138
139 /**
140 * date 加/减月 对应的日期
141 *
142 * @param date
143 * @param day
144 * @return
145 */
146 public static LocalDate getBeforeAfterMonth(LocalDate date, int month) {
147 return date.plusMonths(month);
148 }
149
150 /**
151 * date 加/减年 对应的日期
152 *
153 * @param date
154 * @param day
155 * @return
156 */
157 public static LocalDate getBeforeAfterYear(LocalDate date, int year) {
158 return date.plusYears(year);
159 }
160
161 /**
162 * LocalDateTime 类型转 string
163 *
164 * @param dateTime
165 * @return
166 */
167 public static String getLocalDateTime(LocalDateTime dateTime, String pattern) {
168 return dateTime.format(DateTimeFormatter.ofPattern(pattern));
169 }
170
171
172
173
174
175
176
177 }