日期工具类

  1 /**
  2  * 日期工具类
  3  *
  4  * @author 东篱
  5  * @date 2022-1-22
  6  */
  7 public class DateUtil {
  8 
  9     /**
 10      * 获取当前月开始时间
 11      *
 12      * @param date
 13      */
 14     public static Date beginOfMonth(Date date) {
 15         Calendar calendar = getCalendar();
 16         calendar.setTimeInMillis(date.getTime());
 17         calendar.add(Calendar.YEAR, 0);
 18         calendar.add(Calendar.MONTH, 0);
 19         calendar.set(Calendar.DAY_OF_MONTH, 1);
 20         calendar.set(Calendar.HOUR_OF_DAY, 0);
 21         calendar.set(Calendar.MINUTE, 0);
 22         calendar.set(Calendar.SECOND, 0);
 23 
 24         long timeInMillis = calendar.getTimeInMillis();
 25         return new Date(timeInMillis);
 26     }
 27 
 28     /**
 29      * 获取当前月结束时间
 30      *
 31      * @param date
 32      * @return
 33      */
 34     public static Date endOfMonth(Date date) {
 35         Calendar calendar = getCalendar();
 36         calendar.setTimeInMillis(date.getTime());
 37         calendar.add(Calendar.YEAR, 0);
 38         calendar.add(Calendar.MONTH, 0);
 39         calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
 40         calendar.set(Calendar.HOUR_OF_DAY, 23);
 41         calendar.set(Calendar.MINUTE, 59);
 42         calendar.set(Calendar.SECOND, 59);
 43 
 44         long timeInMillis = calendar.getTimeInMillis();
 45         return new Date(timeInMillis);
 46     }
 47 
 48     /**
 49      * 根据年月日获取日期
 50      *
 51      * @param year
 52      * @param month
 53      * @param day
 54      * @return
 55      */
 56     public static Date getDate(int year, int month, int day) {
 57         return dateStrParse(year + SettleConst.LINE + month + SettleConst.LINE + day, SettleConst.DATE_FORMAT);
 58     }
 59 
 60     /**
 61      * 根据年月日时分秒获取时间
 62      *
 63      * @param year
 64      * @param month
 65      * @param day
 66      * @param time
 67      * @return
 68      */
 69     public static Date getTime(int year, int month, int day, String time) {
 70         return dateStrParse(year + SettleConst.LINE + month + SettleConst.LINE + day + SettleConst.BLANK + time, SettleConst.TIME_FORMAT);
 71     }
 72 
 73     /**
 74      * 日期字符串转date
 75      *
 76      * @param str    日期字符串
 77      * @param format 格式
 78      * @return
 79      */
 80     public static Date dateStrParse(String str, String format) {
 81         SimpleDateFormat sdf = new SimpleDateFormat(format);
 82         Date parse = null;
 83         try {
 84             parse = sdf.parse(str);
 85         } catch (Exception e) {
 86             e.printStackTrace();
 87         }
 88         return parse;
 89     }
 90 
 91     /**
 92      * 日期转字符串
 93      *
 94      * @param date
 95      * @param format
 96      * @return
 97      */
 98     public static String dateFormat(Date date, String format) {
 99         SimpleDateFormat sdf = new SimpleDateFormat(format);
100         String str = "";
101         try {
102             if (date != null){
103                 str = sdf.format(date);
104             }
105         } catch (Exception e) {
106             e.printStackTrace();
107         }
108         return str;
109     }
110 
111     /**
112      * 获取当前日期前某天或后某天
113      *
114      * @param date
115      * @param days
116      * @return
117      */
118     public static Date offsetDate(Date date, int days) {
119         Calendar calendar = Calendar.getInstance();
120         calendar.setTime(date);
121         calendar.add(Calendar.DAY_OF_MONTH, days);
122         return calendar.getTime();
123     }
124 
125     /**
126      * 获取当前日期月份
127      *
128      * @param date
129      * @return
130      */
131     public static Integer month(Date date) {
132         if (date == null) {
133             return -1;
134         }
135         Calendar calendar = Calendar.getInstance();
136         calendar.setTimeInMillis(date.getTime());
137         return calendar.get(Calendar.MONTH) + 1;
138     }
139 
140     /**
141      * 获取当前日期是几号
142      *
143      * @param date
144      * @return
145      */
146     public static Integer day(Date date) {
147         Calendar calendar = Calendar.getInstance();
148         calendar.setTimeInMillis(date.getTime());
149         return calendar.get(Calendar.DATE);
150     }
151 
152     /**
153      * 获取当前日期年份
154      *
155      * @param date
156      * @return
157      */
158     public static Integer year(Date date) {
159         Calendar calendar = Calendar.getInstance();
160         calendar.setTimeInMillis(date.getTime());
161         return calendar.get(Calendar.YEAR);
162     }
163 
164     /**
165      * 获取当前季度开始时间
166      *
167      * @param date
168      * @return
169      */
170     public static Date beginOfQuart(Date date) {
171         Integer month = month(date);
172         Integer quartStartMonth = 1;
173 
174         if (month >= 4 && month <= 6) {
175             quartStartMonth = 4;
176         } else if (month >= 7 && month <= 9) {
177             quartStartMonth = 7;
178         } else if (month >= 10 && month <= 12) {
179             quartStartMonth = 10;
180         }
181 
182         Calendar calendar = getCalendar();
183         calendar.setTimeInMillis(date.getTime());
184         calendar.add(Calendar.YEAR, 0);
185         calendar.set(Calendar.MONTH, quartStartMonth - 1);
186         calendar.set(Calendar.DAY_OF_MONTH, 1);
187         calendar.set(Calendar.HOUR_OF_DAY, 0);
188         calendar.set(Calendar.MINUTE, 0);
189         calendar.set(Calendar.SECOND, 0);
190 
191         return new Date(calendar.getTimeInMillis());
192     }
193 
194     /**
195      * 获取当前季度结束时间
196      *
197      * @param date
198      * @return
199      */
200     public static Date endOfQuart(Date date) {
201         Integer month = month(date);
202         Integer quartStartMonth = 3;
203 
204         if (month >= 4 && month <= 6) {
205             quartStartMonth = 6;
206         } else if (month >= 7 && month <= 9) {
207             quartStartMonth = 9;
208         } else if (month >= 10 && month <= 12) {
209             quartStartMonth = 12;
210         }
211 
212         Calendar calendar = getCalendar();
213         calendar.setTimeInMillis(date.getTime());
214         calendar.add(Calendar.YEAR, 0);
215         calendar.set(Calendar.MONTH, quartStartMonth - 1);
216         calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
217         calendar.set(Calendar.HOUR_OF_DAY, 23);
218         calendar.set(Calendar.MINUTE, 59);
219         calendar.set(Calendar.SECOND, 59);
220 
221         return new Date(calendar.getTimeInMillis());
222     }
223 
224     public static Calendar getCalendar() {
225         Calendar calendar = Calendar.getInstance();
226         calendar.setTimeZone(TimeZone.getTimeZone(SettleConst.TIMEZONE));
227         return calendar;
228     }
229 
230     /**
231      * 获取两个日期间隔的天数
232      * @param minDate
233      * @param maxDate
234      * @return
235      */
236     public static Long betweenDay(Date minDate, Date maxDate) {
237         long maxTime = maxDate == null ? 0L : maxDate.getTime();
238         long minTime = minDate == null ? 0L : minDate.getTime();
239 
240         Long day = (maxTime - minTime) / (1000 * 3600 * 24);
241         return day + 1;
242     }
243 
244     /**
245      * 向前/向后偏移月份
246      * @param date
247      * @param month
248      * @return
249      */
250     public static Date offsetMonth(Date date, Integer month) {
251         Calendar calendar = Calendar.getInstance();
252         calendar.setTimeInMillis(date.getTime());
253         calendar.add(Calendar.MONTH, month);
254 
255         return new Date(calendar.getTimeInMillis());
256     }
257 
258 
259     public static void main(String[] args) {
260     }
261 
262 }

 

posted @ 2022-06-16 15:50  XQYEAH  阅读(42)  评论(0编辑  收藏  举报
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊