| | |
| | | package com.ycl.utils; |
| | | |
| | | import org.apache.commons.lang3.time.DateFormatUtils; |
| | | import org.glassfish.jaxb.core.v2.TODO; |
| | | |
| | | import javax.annotation.Nullable; |
| | | import java.lang.management.ManagementFactory; |
| | |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.*; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.Objects; |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 计算相差小时 |
| | | */ |
| | | public static int differentHoursByMillisecond(Date date1, Date date2) |
| | | { |
| | | return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600))); |
| | | } |
| | | |
| | | /** |
| | | * 计算时间差 |
| | | * |
| | | * @param endDate 最后时间 |
| | |
| | | LocalDateTime of = LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 23, 59, 59); |
| | | return Timestamp.valueOf(of); |
| | | } |
| | | |
| | | /** |
| | | * 获取某月开始日期 |
| | | */ |
| | | public static String getMouthStart(@Nullable Date date) { |
| | | SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); |
| | | Calendar c = Calendar.getInstance(); |
| | | if (date != null) { |
| | | c.setTime(date); // 如果date不为null,则设置Calendar的日期为date |
| | | } |
| | | c.set(Calendar.DAY_OF_MONTH,1); |
| | | return df.format(c.getTime()); |
| | | } |
| | | |
| | | /** |
| | | * 获取某月结束日期 |
| | | */ |
| | | public static String getMouthEnd(@Nullable Date date) { |
| | | SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); |
| | | Calendar c = Calendar.getInstance(); |
| | | if (date != null) { |
| | | c.setTime(date); // 如果date不为null,则设置Calendar的日期为date |
| | | } |
| | | c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH)); |
| | | return df.format(c.getTime()); |
| | | } |
| | | /** |
| | | * 获取指定Calendar的季度开始日期 |
| | | * @param calendar 日历 |
| | | * @return 季度第一天 |
| | | */ |
| | | public static Calendar getQuarterStart(Calendar calendar) { |
| | | Calendar quarterStart = (Calendar) calendar.clone(); |
| | | // 设置为当前季度的第一个月的第一天 |
| | | quarterStart.set(Calendar.DAY_OF_MONTH, 1); |
| | | int month = quarterStart.get(Calendar.MONTH); |
| | | quarterStart.set(Calendar.MONTH, (month / 3) * 3); |
| | | return quarterStart; |
| | | } |
| | | |
| | | /** |
| | | * 获取指定Calendar的季度结束日期 |
| | | * @param calendar 日历 |
| | | * @return 季度最后一天 |
| | | */ |
| | | public static Calendar getQuarterEnd(Calendar calendar) { |
| | | Calendar quarterEnd = getQuarterStart(calendar); |
| | | // 将月份设置为下一个季度的第一个月 |
| | | quarterEnd.add(Calendar.MONTH, 3); |
| | | // 设置为那个月的最后一天 |
| | | quarterEnd.add(Calendar.DAY_OF_MONTH, -1); |
| | | return quarterEnd; |
| | | } |
| | | |
| | | |
| | | public static Date getDay(int year,int month,int day) { |
| | | // 获取Calendar实例,默认使用当前时区和语言环境 |
| | | Calendar calendar = Calendar.getInstance(); |
| | | // 清除Calendar中的所有字段值,以避免它们对当前日期时间有影响 |
| | | calendar.clear(); |
| | | // 设置年份、月份(注意:月份是从0开始的,所以8月是7)、日期 |
| | | calendar.set(Calendar.YEAR, year); |
| | | calendar.set(Calendar.MONTH, month); |
| | | calendar.set(Calendar.DAY_OF_MONTH, day); |
| | | // Calendar.getTime()方法返回一个表示此Calendar时间值的Date对象 |
| | | Date date = calendar.getTime(); |
| | | return date; |
| | | } |
| | | public static Integer getDayOfMonth(Date date) { |
| | | // 创建一个Calendar对象并设置为当前日期和时间 |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | // 获取当前日期是当月中的第几天 |
| | | return calendar.get(Calendar.DAY_OF_MONTH); |
| | | } |
| | | } |