|  | @ -6,20 +6,24 @@ import org.springframework.util.StringUtils;
 | 
	
		
			
				|  |  | import java.math.BigDecimal;
 | 
	
		
			
				|  |  | import java.sql.Time;
 | 
	
		
			
				|  |  | import java.sql.Timestamp;
 | 
	
		
			
				|  |  | import java.text.DateFormat;
 | 
	
		
			
				|  |  | import java.text.ParseException;
 | 
	
		
			
				|  |  | import java.text.ParsePosition;
 | 
	
		
			
				|  |  | import java.text.SimpleDateFormat;
 | 
	
		
			
				|  |  | import java.time.LocalDate;
 | 
	
		
			
				|  |  | import java.time.*;
 | 
	
		
			
				|  |  | import java.time.format.DateTimeFormatter;
 | 
	
		
			
				|  |  | import java.time.temporal.ChronoUnit;
 | 
	
		
			
				|  |  | import java.time.temporal.TemporalAdjusters;
 | 
	
		
			
				|  |  | import java.time.temporal.WeekFields;
 | 
	
		
			
				|  |  | import java.util.*;
 | 
	
		
			
				|  |  | import java.util.concurrent.TimeUnit;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /**
 | 
	
		
			
				|  |  |  * Created by chenweida on 2017/5/19.
 | 
	
		
			
				|  |  |  * jdk1.8 时间工具类
 | 
	
		
			
				|  |  |  * LocalDate 重写tostring 格式 2022-09-05
 | 
	
		
			
				|  |  |  * LocalTime 重写tostring 格式 09:46:24.991
 | 
	
		
			
				|  |  |  * LocalDateTime 重写tostring 格式 2022-09-05T09:46:24.991
 | 
	
		
			
				|  |  |  *
 | 
	
		
			
				|  |  |  * Created by yeshijie on 2022/9/5.
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | public class DateUtil {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static final String yyyy_MM_dd_HH_mm_ss="yyyy-MM-dd HH:mm:ss";
 | 
	
		
			
				|  |  |     public static final String HH_MM = "HH:mm";
 | 
	
		
			
				|  |  |     public static final String HH_MM_SS = "HH:mm:ss";
 | 
	
		
			
				|  |  |     public static final String YY = "yy";
 | 
	
	
		
			
				|  | @ -37,74 +41,64 @@ public class DateUtil {
 | 
	
		
			
				|  |  |     public static final String YYYY_MM ="yyyy-MM";
 | 
	
		
			
				|  |  |     public static final String YYYYMMDD_HH_MM_SS = "yyyyMMdd HH:mm:ss";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static Date dateTimeParse(String date) throws ParseException {
 | 
	
		
			
				|  |  |         return new SimpleDateFormat(yyyy_MM_dd_HH_mm_ss).parse(date);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     public static DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(YYYY_MM_DD);
 | 
	
		
			
				|  |  |     public static DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(YYYY_MM_DD_HH_MM_SS);// 24小时
 | 
	
		
			
				|  |  |     public static Long eightHoursMillis = TimeUnit.HOURS.toMillis(8);//8小时的毫秒数
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private static ThreadLocal<SimpleDateFormat> simpleDateTimeFormat = new ThreadLocal<SimpleDateFormat>(){
 | 
	
		
			
				|  |  |         @Override
 | 
	
		
			
				|  |  |         protected synchronized SimpleDateFormat initialValue(){
 | 
	
		
			
				|  |  |             return new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     };
 | 
	
		
			
				|  |  |     public static ZoneId zone = ZoneId.systemDefault();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private static ThreadLocal<SimpleDateFormat> simpleDateFormat = new ThreadLocal<SimpleDateFormat>(){
 | 
	
		
			
				|  |  |         @Override
 | 
	
		
			
				|  |  |         protected synchronized SimpleDateFormat initialValue(){
 | 
	
		
			
				|  |  |             return new SimpleDateFormat(YYYY_MM_DD);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     };
 | 
	
		
			
				|  |  |     //取当前日期
 | 
	
		
			
				|  |  |     public static LocalDate getDateNow(){
 | 
	
		
			
				|  |  |         return LocalDate.now();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static Date simpleDateParse(final String date) throws ParseException {
 | 
	
		
			
				|  |  |         if(StringUtils.isEmpty(date)) return null;
 | 
	
		
			
				|  |  |     //取当前日期+时间
 | 
	
		
			
				|  |  |     public static LocalDateTime getDateTimeNow(){
 | 
	
		
			
				|  |  |         return LocalDateTime.now();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Date parsedDate = simpleDateFormat.get().parse(date);
 | 
	
		
			
				|  |  |         return parsedDate;
 | 
	
		
			
				|  |  |     //取当前日时间
 | 
	
		
			
				|  |  |     public static LocalTime getTimeNow(){
 | 
	
		
			
				|  |  |         return LocalTime.now();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String simpleDateTimeFormat(final Date date){
 | 
	
		
			
				|  |  |         String time = simpleDateTimeFormat.get().format(date);
 | 
	
		
			
				|  |  |         return time;
 | 
	
		
			
				|  |  |     public static Date localTimeToDate(LocalDateTime localDateTime){
 | 
	
		
			
				|  |  |         return Date.from(localDateTime.atZone(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 时间格式转中文格式
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String dateToChinese(Date date) {
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter =   new SimpleDateFormat( "yyyy年MM月dd日 EEEEaaaa hh:mm", Locale.CHINA);
 | 
	
		
			
				|  |  |         return formatter.format(date);
 | 
	
		
			
				|  |  |         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 EEEEa hh:mm");
 | 
	
		
			
				|  |  |         return dateTimeFormatter.format(dateToLocalDateTime(date));
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String dateToChineseDate(Date date) {
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter =   new SimpleDateFormat( "yyyy年MM月dd日", Locale.CHINA);
 | 
	
		
			
				|  |  |         return formatter.format(date);
 | 
	
		
			
				|  |  |         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
 | 
	
		
			
				|  |  |         return dateTimeFormatter.format(dateToLocalDate(date));
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String dateToChineseTime(Date date) {
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter =   new SimpleDateFormat( "yyyy年MM月dd日 HH:mm:ss", Locale.CHINA);
 | 
	
		
			
				|  |  |         return formatter.format(date);
 | 
	
		
			
				|  |  |         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
 | 
	
		
			
				|  |  |         return dateTimeFormatter.format(dateToLocalDateTime(date));
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String dateToChineseTime2(Date date) {
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter =   new SimpleDateFormat( "yyyy年MM月dd日 hh:mm", Locale.CHINA);
 | 
	
		
			
				|  |  |         return formatter.format(date);
 | 
	
		
			
				|  |  |         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 hh:mm");
 | 
	
		
			
				|  |  |         return dateTimeFormatter.format(dateToLocalDateTime(date));
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static Date getNight23(){
 | 
	
		
			
				|  |  |         Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |         cal.set(Calendar.HOUR_OF_DAY,22);
 | 
	
		
			
				|  |  |         return cal.getTime();
 | 
	
		
			
				|  |  |         Instant instant = LocalDateTime.now().withHour(22).atZone(zone).toInstant();
 | 
	
		
			
				|  |  |         return Date.from(instant);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static Date getToday(){
 | 
	
		
			
				|  |  |         Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |         cal.set(Calendar.HOUR_OF_DAY,0);
 | 
	
		
			
				|  |  |         cal.set(Calendar.MINUTE,0);
 | 
	
		
			
				|  |  |         cal.set(Calendar.SECOND,0);
 | 
	
		
			
				|  |  |         return cal.getTime();
 | 
	
		
			
				|  |  |         Instant instant = LocalDate.now().atStartOfDay(zone).toInstant();
 | 
	
		
			
				|  |  |         return Date.from(instant);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 字符串转时间格式
 | 
	
		
			
				|  |  |      */
 | 
	
	
		
			
				|  | @ -127,7 +121,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 else if(length == 19)
 | 
	
		
			
				|  |  |                 {
 | 
	
		
			
				|  |  |                     return strToDate(strDate,YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |                     return strToDateTime(strDate,YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             else{
 | 
	
	
		
			
				|  | @ -137,7 +131,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 else if(length == 14)
 | 
	
		
			
				|  |  |                 {
 | 
	
		
			
				|  |  |                     return strToDate(strDate,YYYYMMDDHHMMSS);
 | 
	
		
			
				|  |  |                     return strToDateTime(strDate,YYYYMMDDHHMMSS);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -151,11 +145,37 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return 返回时间类型 yyyy-MM-dd HH:mm:ss
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date getNowDate() {
 | 
	
		
			
				|  |  |         Date currentTime = new Date();
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |         String dateString = formatter.format(currentTime);
 | 
	
		
			
				|  |  |         ParsePosition pos = new ParsePosition(0);
 | 
	
		
			
				|  |  |         return formatter.parse(dateString, pos);
 | 
	
		
			
				|  |  |         return new Date();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 将短时间格式字符串转换为时间
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param strDate
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date strToDate(String strDate, String format) {
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(strDate)) {
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format);
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.parse(strDate,dateTimeFormatter);
 | 
	
		
			
				|  |  |         return Date.from(localDate.atStartOfDay(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 将短时间格式字符串转换为时间
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param strDate
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date strToDateTime(String strDate, String format) {
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(strDate)) {
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format);
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = LocalDateTime.parse(strDate,dateTimeFormatter);
 | 
	
		
			
				|  |  |         return Date.from(localDateTime.atZone(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -164,10 +184,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return返回短时间格式 yyyy-MM-dd
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date getNowDateShort() {
 | 
	
		
			
				|  |  |         Date currentTime = new Date();
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD);
 | 
	
		
			
				|  |  |         String dateString = formatter.format(currentTime);
 | 
	
		
			
				|  |  |         return strToDate(dateString, YYYY_MM_DD);
 | 
	
		
			
				|  |  |         Instant instant = LocalDate.now().atStartOfDay(zone).toInstant();
 | 
	
		
			
				|  |  |         return Date.from(instant);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -176,9 +194,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getStringDate() {
 | 
	
		
			
				|  |  |         Date currentTime = new Date();
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |         return formatter.format(currentTime);
 | 
	
		
			
				|  |  |         return dateToStringLong(new Date(),YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -187,14 +203,27 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getStringDateUpper() {
 | 
	
		
			
				|  |  |         Date currentTime = new Date();
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYYMMDDHHMMSS);
 | 
	
		
			
				|  |  |         return formatter.format(currentTime);
 | 
	
		
			
				|  |  |         return dateToStringLong(new Date(),YYYYMMDDHHMMSS);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String getYyyymmddhhmmss(Date date) {
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYYMMDDHHMMSS);
 | 
	
		
			
				|  |  |         return formatter.format(date);
 | 
	
		
			
				|  |  |         return dateToStringLong(date,YYYYMMDDHHMMSS);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static LocalDate dateToLocalDate(Date date){
 | 
	
		
			
				|  |  |         return date.toInstant().atZone(zone).toLocalDate();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static LocalDateTime dateToLocalDateTime(Date date){
 | 
	
		
			
				|  |  |         return date.toInstant().atZone(zone).toLocalDateTime();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String dateToStringLong(Date date,String format){
 | 
	
		
			
				|  |  |         if(date == null){
 | 
	
		
			
				|  |  |             return "";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format);
 | 
	
		
			
				|  |  |         return dateTimeFormatter.format(dateToLocalDateTime(date));
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -203,10 +232,10 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getStringDate(String format) {
 | 
	
		
			
				|  |  |         Date currentTime = new Date();
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(format);
 | 
	
		
			
				|  |  |         return formatter.format(currentTime);
 | 
	
		
			
				|  |  |         Date date = new Date();
 | 
	
		
			
				|  |  |         return dateToStringLong(date,format);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取现在时间
 | 
	
		
			
				|  |  |      *
 | 
	
	
		
			
				|  | @ -219,8 +248,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |             preTimes = currentTime.getTime()-Long.parseLong(days)*24*60*60*1000;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         Date preDate = new Date(preTimes);
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(format);
 | 
	
		
			
				|  |  |         return formatter.format(preDate);
 | 
	
		
			
				|  |  |         return dateToStringLong(preDate,format);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取现在时间
 | 
	
	
		
			
				|  | @ -229,8 +257,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getStringDateShort() {
 | 
	
		
			
				|  |  |         Date currentTime = new Date();
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD);
 | 
	
		
			
				|  |  |         return formatter.format(currentTime);
 | 
	
		
			
				|  |  |         return dateToStringLong(currentTime,YYYY_MM_DD);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -239,9 +266,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getTimeShort() {
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(HH_MM_SS);
 | 
	
		
			
				|  |  |         Date currentTime = new Date();
 | 
	
		
			
				|  |  |         return formatter.format(currentTime);
 | 
	
		
			
				|  |  |         return dateToStringLong(currentTime,HH_MM_SS);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -254,11 +280,10 @@ public class DateUtil {
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(strDate)) {
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |         ParsePosition pos = new ParsePosition(0);
 | 
	
		
			
				|  |  |         return formatter.parse(strDate, pos);
 | 
	
		
			
				|  |  |         return strToDateTime(strDate, YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 将长时间格式字符串转换为时间 yyyyMMdd HH:mm:ss
 | 
	
		
			
				|  |  |      *
 | 
	
	
		
			
				|  | @ -269,18 +294,14 @@ public class DateUtil {
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(strDate)) {
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYYMMDD_HH_MM_SS);
 | 
	
		
			
				|  |  |         ParsePosition pos = new ParsePosition(0);
 | 
	
		
			
				|  |  |         return formatter.parse(strDate, pos);
 | 
	
		
			
				|  |  |         return strToDateTime(strDate, YYYYMMDD_HH_MM_SS);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static Date strToDateShort(String strDate) {
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(strDate)) {
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD);
 | 
	
		
			
				|  |  |         ParsePosition pos = new ParsePosition(0);
 | 
	
		
			
				|  |  |         return formatter.parse(strDate, pos);
 | 
	
		
			
				|  |  |         return strToDate(strDate, YYYY_MM_DD);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -289,12 +310,11 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @param dateDate
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String dateToStrLong(java.util.Date dateDate) {
 | 
	
		
			
				|  |  |     public static String dateToStrLong(Date dateDate) {
 | 
	
		
			
				|  |  |         if (dateDate == null) {
 | 
	
		
			
				|  |  |             return "";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |         return formatter.format(dateDate);
 | 
	
		
			
				|  |  |         return dateToStringLong(dateDate,YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -307,15 +327,13 @@ public class DateUtil {
 | 
	
		
			
				|  |  |         if (dateDate == null) {
 | 
	
		
			
				|  |  |             return "";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYYMMDDHHMMSS);
 | 
	
		
			
				|  |  |         return formatter.format(dateDate);
 | 
	
		
			
				|  |  |         return dateToStringLong(dateDate,YYYYMMDDHHMMSS);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     public static String dateToStrNoSecond(java.util.Date dateDate) {
 | 
	
		
			
				|  |  |         if (dateDate == null) {
 | 
	
		
			
				|  |  |             return "";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM);
 | 
	
		
			
				|  |  |         return formatter.format(dateDate);
 | 
	
		
			
				|  |  |         return dateToStringLong(dateDate,YYYY_MM_DD_HH_MM);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 将长时间格式时间转换为字符串 YYYYMMDD
 | 
	
	
		
			
				|  | @ -327,8 +345,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |         if (dateDate == null) {
 | 
	
		
			
				|  |  |             return "";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYYMMDD);
 | 
	
		
			
				|  |  |         return formatter.format(dateDate);
 | 
	
		
			
				|  |  |         return dateToStringLong(dateDate,YYYYMMDD);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -341,8 +358,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |         if (dateDate == null) {
 | 
	
		
			
				|  |  |             return "";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD);
 | 
	
		
			
				|  |  |         return formatter.format(dateDate);
 | 
	
		
			
				|  |  |         return dateToStringLong(dateDate,YYYY_MM_DD);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -352,35 +368,16 @@ public class DateUtil {
 | 
	
		
			
				|  |  |         if (dateDate == null) {
 | 
	
		
			
				|  |  |             return "";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(format);
 | 
	
		
			
				|  |  |         return formatter.format(dateDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 将短时间格式字符串转换为时间
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param strDate
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date strToDate(String strDate, String format) {
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(strDate)) {
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(format);
 | 
	
		
			
				|  |  |         ParsePosition pos = new ParsePosition(0);
 | 
	
		
			
				|  |  |         return formatter.parse(strDate, pos);
 | 
	
		
			
				|  |  |         return dateToStringLong(dateDate,format);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static Date strToDateAppendNowTime(String strDate, String format) {
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(strDate)) {
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         strDate += " " + getTimeShort();
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(format);
 | 
	
		
			
				|  |  |         ParsePosition pos = new ParsePosition(0);
 | 
	
		
			
				|  |  |         return formatter.parse(strDate, pos);
 | 
	
		
			
				|  |  |         return strToDateTime(strDate,format);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -413,9 +410,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getStringToday() {
 | 
	
		
			
				|  |  |         Date currentTime = new Date();
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
 | 
	
		
			
				|  |  |         String dateString = formatter.format(currentTime);
 | 
	
		
			
				|  |  |         return dateString;
 | 
	
		
			
				|  |  |         return dateToStringLong(currentTime,"yyyyMMdd HHmmss");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -423,11 +418,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getHour() {
 | 
	
		
			
				|  |  |         Date currentTime = new Date();
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |         String dateString = formatter.format(currentTime);
 | 
	
		
			
				|  |  |         String hour;
 | 
	
		
			
				|  |  |         hour = dateString.substring(11, 13);
 | 
	
		
			
				|  |  |         return hour;
 | 
	
		
			
				|  |  |         return dateToStringLong(currentTime,"HH");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -437,11 +428,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getTime() {
 | 
	
		
			
				|  |  |         Date currentTime = new Date();
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |         String dateString = formatter.format(currentTime);
 | 
	
		
			
				|  |  |         String min;
 | 
	
		
			
				|  |  |         min = dateString.substring(14, 16);
 | 
	
		
			
				|  |  |         return min;
 | 
	
		
			
				|  |  |         return dateToStringLong(currentTime,"mm");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -453,41 +440,16 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getUserDate(String sformat) {
 | 
	
		
			
				|  |  |         Date currentTime = new Date();
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(sformat);
 | 
	
		
			
				|  |  |         String dateString = formatter.format(currentTime);
 | 
	
		
			
				|  |  |         return dateString;
 | 
	
		
			
				|  |  |         return dateToStringLong(currentTime,sformat);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 得到二个日期间的间隔天数
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getTwoDay(String sj1, String sj2) {
 | 
	
		
			
				|  |  |         SimpleDateFormat myFormatter = new SimpleDateFormat(YYYY_MM_DD);
 | 
	
		
			
				|  |  |         long day = 0;
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             java.util.Date date = myFormatter.parse(sj1);
 | 
	
		
			
				|  |  |             java.util.Date mydate = myFormatter.parse(sj2);
 | 
	
		
			
				|  |  |             day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return "";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return day + "";
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 时间前推或后推分钟,其中JJ表示分钟.
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getPreTime(String sj1, String jj) {
 | 
	
		
			
				|  |  |         SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |         String mydate1 = "";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             Date date1 = format.parse(sj1);
 | 
	
		
			
				|  |  |             long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;
 | 
	
		
			
				|  |  |             date1.setTime(Time * 1000);
 | 
	
		
			
				|  |  |             mydate1 = format.format(date1);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return mydate1;
 | 
	
		
			
				|  |  |         LocalDate startDate = LocalDate.parse(sj1,dateFormatter);
 | 
	
		
			
				|  |  |         LocalDate endtDate = LocalDate.parse(sj2,dateFormatter);
 | 
	
		
			
				|  |  |         return startDate.until(endtDate, ChronoUnit.DAYS)+"";
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -497,11 +459,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |     public static Date getPreDays(Date date, int days) {
 | 
	
		
			
				|  |  |         Date day = null;
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             c.setTime(date);
 | 
	
		
			
				|  |  |             c.add(Calendar.DATE, days);
 | 
	
		
			
				|  |  |             day = c.getTime();
 | 
	
		
			
				|  |  |             LocalDateTime localDateTime = dateToLocalDateTime(date).plusDays(days);
 | 
	
		
			
				|  |  |             day = Date.from(localDateTime.atZone(zone).toInstant());
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return day;
 | 
	
	
		
			
				|  | @ -512,10 +471,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date getNextMin(Date date, int delay) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |             cal.setTime(date);
 | 
	
		
			
				|  |  |             cal.add(Calendar.MINUTE, delay);
 | 
	
		
			
				|  |  |             return cal.getTime();
 | 
	
		
			
				|  |  |             LocalDateTime localDateTime = dateToLocalDateTime(date).plusMinutes(delay);
 | 
	
		
			
				|  |  |             return Date.from(localDateTime.atZone(zone).toInstant());
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -526,13 +483,9 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getNextMin(String nowdate, int delay) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             SimpleDateFormat format = new SimpleDateFormat(HH_MM);
 | 
	
		
			
				|  |  |             String mdate = "";
 | 
	
		
			
				|  |  |             Date d = strToDate(nowdate, HH_MM);
 | 
	
		
			
				|  |  |             long myTime = (d.getTime() / 1000) + delay * 60;
 | 
	
		
			
				|  |  |             d.setTime(myTime * 1000);
 | 
	
		
			
				|  |  |             mdate = format.format(d);
 | 
	
		
			
				|  |  |             return mdate;
 | 
	
		
			
				|  |  |             LocalDateTime localDateTime = LocalDateTime.parse(nowdate,dateTimeFormatter).plusMinutes(delay);
 | 
	
		
			
				|  |  |             DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(HH_MM);
 | 
	
		
			
				|  |  |             return dateTimeFormatter.format(localDateTime);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return "";
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -540,14 +493,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String getNextMinute(String nowdate, int delay) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |             String mdate = "";
 | 
	
		
			
				|  |  |             Date date = strToDate(nowdate, YYYY_MM_DD_HH_MM_SS);
 | 
	
		
			
				|  |  |             Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |             cal.setTime(date);
 | 
	
		
			
				|  |  |             cal.add(Calendar.MINUTE, delay);
 | 
	
		
			
				|  |  |             mdate = format.format(cal.getTime());
 | 
	
		
			
				|  |  |             return mdate;
 | 
	
		
			
				|  |  |             LocalDateTime localDateTime = LocalDateTime.parse(nowdate,dateTimeFormatter).plusMinutes(delay);
 | 
	
		
			
				|  |  |             return dateTimeFormatter.format(localDateTime);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return "";
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -558,79 +505,51 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getNextDay(String nowdate, int delay) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD);
 | 
	
		
			
				|  |  |             String mdate = "";
 | 
	
		
			
				|  |  |             Date d = strToDate(nowdate, YYYY_MM_DD);
 | 
	
		
			
				|  |  |             long myTime = (d.getTime() / 1000) + delay * 24 * 60 * 60;
 | 
	
		
			
				|  |  |             d.setTime(myTime * 1000);
 | 
	
		
			
				|  |  |             mdate = format.format(d);
 | 
	
		
			
				|  |  |             return mdate;
 | 
	
		
			
				|  |  |             LocalDate localDate = LocalDate.parse(nowdate,dateFormatter).plusDays(delay);
 | 
	
		
			
				|  |  |             return dateFormatter.format(localDate);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return "";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /*
 | 
	
		
			
				|  |  |      * 将时间戳转换为时间
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String stampToString(String s){
 | 
	
		
			
				|  |  |         String res;
 | 
	
		
			
				|  |  |         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 | 
	
		
			
				|  |  |         long lt = new Long(s);
 | 
	
		
			
				|  |  |         Date date = new Date(lt);
 | 
	
		
			
				|  |  |         res = simpleDateFormat.format(date);
 | 
	
		
			
				|  |  |         return res;
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = Instant.ofEpochMilli(Long.valueOf(s)).atZone(zone).toLocalDateTime();
 | 
	
		
			
				|  |  |         return dateTimeFormatter.format(localDateTime);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /*
 | 
	
		
			
				|  |  |      * 将时间戳转换为时间
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date stampToDate(String s){
 | 
	
		
			
				|  |  |         long lt = new Long(s);
 | 
	
		
			
				|  |  |         Date date = new Date(lt);
 | 
	
		
			
				|  |  |         return date;
 | 
	
		
			
				|  |  |         return Date.from(Instant.ofEpochMilli(Long.valueOf(s)).plusMillis(eightHoursMillis));
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String getNextMinute(int minutes) {
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.add(Calendar.MINUTE, minutes);
 | 
	
		
			
				|  |  |         return dateToStrLong(c.getTime());
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = LocalDateTime.now().withMinute(minutes);
 | 
	
		
			
				|  |  |         return dateTimeFormatter.format(localDateTime);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String getNextDay(Date d, int days) {
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.setTime(d);
 | 
	
		
			
				|  |  |         c.add(Calendar.DATE, days);
 | 
	
		
			
				|  |  |         return dateToStrShort(c.getTime());
 | 
	
		
			
				|  |  |         return dateFormatter.format(dateToLocalDate(d).plusDays(days));
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static Date getNextDay1(Date d, int days) {
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.setTime(d);
 | 
	
		
			
				|  |  |         c.add(Calendar.DATE, days);
 | 
	
		
			
				|  |  |         return c.getTime();
 | 
	
		
			
				|  |  |         return Date.from(dateToLocalDateTime(d).plusDays(days).atZone(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String getNextMonth(Date d, int months) {
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.setTime(d);
 | 
	
		
			
				|  |  |         c.add(Calendar.MONTH, months);
 | 
	
		
			
				|  |  |         return dateToStrShort(c.getTime());
 | 
	
		
			
				|  |  |         return dateFormatter.format(dateToLocalDate(d).plusMonths(months));
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static Date getNextMonthReturnDate(Date d, int months) {
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.setTime(d);
 | 
	
		
			
				|  |  |         c.add(Calendar.MONTH, months);
 | 
	
		
			
				|  |  |         return c.getTime();
 | 
	
		
			
				|  |  |         return Date.from(dateToLocalDateTime(d).plusMonths(months).atZone(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String getNextYear(Date d, int year) {
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.setTime(d);
 | 
	
		
			
				|  |  |         c.add(Calendar.YEAR, year);
 | 
	
		
			
				|  |  |         return dateToStrShort(c.getTime());
 | 
	
		
			
				|  |  |         return dateFormatter.format(dateToLocalDate(d).plusYears(year));
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -638,11 +557,10 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getCurMonthFirstDayShort(){
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
 | 
	
		
			
				|  |  |         return dateToStrShort(c.getTime());
 | 
	
		
			
				|  |  |         return dateFormatter.format(LocalDate.now().withDayOfMonth(1));
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 判断是否润年
 | 
	
		
			
				|  |  |      *
 | 
	
	
		
			
				|  | @ -654,21 +572,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |          * 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
 | 
	
		
			
				|  |  |          * 3.能被4整除同时能被100整除则不是闰年
 | 
	
		
			
				|  |  |          */
 | 
	
		
			
				|  |  |         Date d = strToDate(ddate, YYYY_MM_DD);
 | 
	
		
			
				|  |  |         GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
 | 
	
		
			
				|  |  |         gc.setTime(d);
 | 
	
		
			
				|  |  |         int year = gc.get(Calendar.YEAR);
 | 
	
		
			
				|  |  |         if ((year % 400) == 0){
 | 
	
		
			
				|  |  |             return true;
 | 
	
		
			
				|  |  |         } else if ((year % 4) == 0) {
 | 
	
		
			
				|  |  |             if ((year % 100) == 0){
 | 
	
		
			
				|  |  |                 return false;
 | 
	
		
			
				|  |  |             } else{
 | 
	
		
			
				|  |  |                 return true;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } else{
 | 
	
		
			
				|  |  |             return false;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.parse(ddate,dateFormatter);
 | 
	
		
			
				|  |  |         return localDate.isLeapYear();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -678,9 +583,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getEDate(String str) {
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD);
 | 
	
		
			
				|  |  |         ParsePosition pos = new ParsePosition(0);
 | 
	
		
			
				|  |  |         Date strtodate = formatter.parse(str, pos);
 | 
	
		
			
				|  |  |         Date strtodate = strToDate(str,YYYY_MM_DD);
 | 
	
		
			
				|  |  |         String j = strtodate.toString();
 | 
	
		
			
				|  |  |         String[] k = j.split(" ");
 | 
	
		
			
				|  |  |         return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);
 | 
	
	
		
			
				|  | @ -717,12 +620,12 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getSeqWeek() {
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance(Locale.CHINA);
 | 
	
		
			
				|  |  |         String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
 | 
	
		
			
				|  |  |         LocalDate now = LocalDate.now();
 | 
	
		
			
				|  |  |         String week = Integer.toString(now.get(WeekFields.ISO.weekOfYear()));
 | 
	
		
			
				|  |  |         if (week.length() == 1){
 | 
	
		
			
				|  |  |             week = "0" + week;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String year = Integer.toString(c.get(Calendar.YEAR));
 | 
	
		
			
				|  |  |         String year = Integer.toString(now.getYear());
 | 
	
		
			
				|  |  |         return year + week;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -735,31 +638,29 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getWeek(String sdate, String num) {
 | 
	
		
			
				|  |  |         // 再转换为时间
 | 
	
		
			
				|  |  |         Date dd = DateUtil.strToDate(sdate, YYYY_MM_DD);
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.setTime(dd);
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.parse(sdate,dateFormatter);
 | 
	
		
			
				|  |  |         if (num.equals("1")){ // 返回星期一所在的日期
 | 
	
		
			
				|  |  |             c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
 | 
	
		
			
				|  |  |             localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.MONDAY.getValue());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         else if (num.equals("2")){ // 返回星期二所在的日期
 | 
	
		
			
				|  |  |             c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
 | 
	
		
			
				|  |  |             localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.TUESDAY.getValue());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         else if (num.equals("3")){ // 返回星期三所在的日期
 | 
	
		
			
				|  |  |             c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
 | 
	
		
			
				|  |  |             localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.WEDNESDAY.getValue());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         else if (num.equals("4")){ // 返回星期四所在的日期
 | 
	
		
			
				|  |  |             c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
 | 
	
		
			
				|  |  |             localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.THURSDAY.getValue());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         else if (num.equals("5")){ // 返回星期五所在的日期
 | 
	
		
			
				|  |  |             c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
 | 
	
		
			
				|  |  |             localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.FRIDAY.getValue());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         else if (num.equals("6")){ // 返回星期六所在的日期
 | 
	
		
			
				|  |  |             c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
 | 
	
		
			
				|  |  |             localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.SATURDAY.getValue());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         else if (num.equals("0")){ // 返回星期日所在的日期
 | 
	
		
			
				|  |  |             c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
 | 
	
		
			
				|  |  |             localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.SUNDAY.getValue());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
 | 
	
		
			
				|  |  |         return dateFormatter.format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -770,18 +671,15 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getWeek(String sdate) {
 | 
	
		
			
				|  |  |         // 再转换为时间
 | 
	
		
			
				|  |  |         Date date = DateUtil.strToDate(sdate, YYYY_MM_DD);
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.setTime(date);
 | 
	
		
			
				|  |  |         // int hour=c.get(Calendar.DAY_OF_WEEK);
 | 
	
		
			
				|  |  |         // hour中存的就是星期几了,其范围 1~7
 | 
	
		
			
				|  |  |         // 1=星期日 7=星期六,其他类推
 | 
	
		
			
				|  |  |         return new SimpleDateFormat("EEEE").format(c.getTime());
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.parse(sdate,dateFormatter);
 | 
	
		
			
				|  |  |         return DateTimeFormatter.ofPattern("EEEE").format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String getWeekStr(String sdate) {
 | 
	
		
			
				|  |  |         String str = "";
 | 
	
		
			
				|  |  |         str = DateUtil.getWeek(sdate);
 | 
	
		
			
				|  |  |         str = getWeek(sdate);
 | 
	
		
			
				|  |  |         if ("1".equals(str)) {
 | 
	
		
			
				|  |  |             str = "星期日";
 | 
	
		
			
				|  |  |         } else if ("2".equals(str)) {
 | 
	
	
		
			
				|  | @ -806,7 +704,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @param s2
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static long compareDate(java.util.Date s1, java.util.Date s2) {
 | 
	
		
			
				|  |  |     public static long compareDate(Date s1, Date s2) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             return compareDate(YYYY_MM_DD, dateToStrShort(s1), dateToStrShort(s2));
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
	
		
			
				|  | @ -823,17 +721,16 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static long compareDate(String format, String s1, String s2) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         SimpleDateFormat f = new SimpleDateFormat(format);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Date s = strToDate(s1,YYYY_MM_DD);
 | 
	
		
			
				|  |  |         Date end = strToDate(s2,YYYY_MM_DD);
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             return f.parse(s1).getTime() - f.parse(s2).getTime();
 | 
	
		
			
				|  |  |             return s.getTime() - end.getTime();
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return -1;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 两个时间之间的天数
 | 
	
		
			
				|  |  |      *
 | 
	
	
		
			
				|  | @ -849,16 +746,10 @@ public class DateUtil {
 | 
	
		
			
				|  |  |             return 0;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         // 转换为标准时间
 | 
	
		
			
				|  |  |         SimpleDateFormat myFormatter = new SimpleDateFormat(YYYY_MM_DD);
 | 
	
		
			
				|  |  |         java.util.Date date = null;
 | 
	
		
			
				|  |  |         java.util.Date mydate = null;
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             date = myFormatter.parse(date1);
 | 
	
		
			
				|  |  |             mydate = myFormatter.parse(date2);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
 | 
	
		
			
				|  |  |         return day;
 | 
	
		
			
				|  |  |         LocalDate date = LocalDate.parse(date1,dateFormatter);
 | 
	
		
			
				|  |  |         LocalDate mydate = LocalDate.parse(date2,dateFormatter);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return date.until(mydate,ChronoUnit.DAYS);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -891,6 +782,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |         return hour;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 形成如下的日历 , 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间
 | 
	
		
			
				|  |  |      * 此函数返回该日历第一行星期日所在的日期
 | 
	
	
		
			
				|  | @ -902,12 +794,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |         // 取该时间所在月的一号
 | 
	
		
			
				|  |  |         sdate = sdate.substring(0, 8) + "01";
 | 
	
		
			
				|  |  |         // 得到这个月的1号是星期几
 | 
	
		
			
				|  |  |         Date date = DateUtil.strToDate(sdate, YYYY_MM_DD);
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.setTime(date);
 | 
	
		
			
				|  |  |         int u = c.get(Calendar.DAY_OF_WEEK);
 | 
	
		
			
				|  |  |         String newday = DateUtil.getNextDay(sdate, 1 - u);
 | 
	
		
			
				|  |  |         return newday;
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.parse(sdate,dateFormatter).with(WeekFields.ISO.dayOfWeek(), 7L);
 | 
	
		
			
				|  |  |         return dateFormatter.format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -947,7 +835,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 根据用户生日计算年龄
 | 
	
		
			
				|  |  |      * 根据用户生日计算年龄 周岁计算
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static int getAgeByBirthday(Date birthday) {
 | 
	
		
			
				|  |  |         try {
 | 
	
	
		
			
				|  | @ -956,20 +844,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |             if (birthday == null) {
 | 
	
		
			
				|  |  |                 return age;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             String birth = new SimpleDateFormat("yyyyMMdd").format(birthday);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             int year = Integer.valueOf(birth.substring(0, 4));
 | 
	
		
			
				|  |  |             int month = Integer.valueOf(birth.substring(4, 6));
 | 
	
		
			
				|  |  |             int day = Integer.valueOf(birth.substring(6));
 | 
	
		
			
				|  |  |             Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |             age = cal.get(Calendar.YEAR) - year;
 | 
	
		
			
				|  |  |             //周岁计算
 | 
	
		
			
				|  |  |             if (cal.get(Calendar.MONTH) < (month - 1) || (cal.get(Calendar.MONTH) == (month - 1) && cal.get(Calendar.DATE) < day)) {
 | 
	
		
			
				|  |  |                 age--;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             return age;
 | 
	
		
			
				|  |  |             LocalDate localDate = dateToLocalDate(birthday);
 | 
	
		
			
				|  |  |             return localDate.until(LocalDate.now()).getYears();
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return 0;
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -983,26 +859,15 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date stringToDate(String str, String eg) {
 | 
	
		
			
				|  |  |         DateFormat format = new SimpleDateFormat(eg);
 | 
	
		
			
				|  |  |         Date date = null;
 | 
	
		
			
				|  |  |         if (str != null && !"".equals(str)) {
 | 
	
		
			
				|  |  |             try {
 | 
	
		
			
				|  |  |                 date = format.parse(str);
 | 
	
		
			
				|  |  |             } catch (Exception e) {
 | 
	
		
			
				|  |  |                 return null;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return date;
 | 
	
		
			
				|  |  |         return strToDate(str,eg);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static int getNowMonth(){
 | 
	
		
			
				|  |  |         Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |         return cal.get(Calendar.MONTH)+1;
 | 
	
		
			
				|  |  |         return LocalDate.now().getMonthValue();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static int getNowYear(){
 | 
	
		
			
				|  |  |         Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |         return cal.get(Calendar.YEAR);
 | 
	
		
			
				|  |  |         return LocalDate.now().getYear();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1010,14 +875,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getMondayOfThisWeek() {
 | 
	
		
			
				|  |  |         SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
 | 
	
		
			
				|  |  |         if (day_of_week == 0){
 | 
	
		
			
				|  |  |             day_of_week = 7;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         c.add(Calendar.DATE, -day_of_week + 1);
 | 
	
		
			
				|  |  |         return df2.format(c.getTime());
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.now().with(WeekFields.ISO.getFirstDayOfWeek());
 | 
	
		
			
				|  |  |         return dateFormatter.format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1025,15 +884,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @returnc
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getMondayOfThisWeek(Date date) {
 | 
	
		
			
				|  |  |         SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.setTime(date);
 | 
	
		
			
				|  |  |         int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
 | 
	
		
			
				|  |  |         if (day_of_week == 0){
 | 
	
		
			
				|  |  |             day_of_week = 7;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         c.add(Calendar.DATE, -day_of_week + 1);
 | 
	
		
			
				|  |  |         return df2.format(c.getTime());
 | 
	
		
			
				|  |  |         LocalDate localDate = dateToLocalDate(date).with(WeekFields.ISO.getFirstDayOfWeek());
 | 
	
		
			
				|  |  |         return dateFormatter.format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1042,14 +894,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return yyyy-MM-dd
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getSundayOfThisWeek() {
 | 
	
		
			
				|  |  |         SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
 | 
	
		
			
				|  |  |         if (day_of_week == 0){
 | 
	
		
			
				|  |  |             day_of_week = 7;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         c.add(Calendar.DATE, -day_of_week + 7);
 | 
	
		
			
				|  |  |         return df2.format(c.getTime());
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.now().with(WeekFields.ISO.dayOfWeek(),7L);
 | 
	
		
			
				|  |  |         return dateFormatter.format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1058,15 +904,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return yyyy-MM-dd
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getSundayOfThisWeek(Date date) {
 | 
	
		
			
				|  |  |         SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.setTime(date);
 | 
	
		
			
				|  |  |         int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
 | 
	
		
			
				|  |  |         if (day_of_week == 0){
 | 
	
		
			
				|  |  |             day_of_week = 7;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         c.add(Calendar.DATE, -day_of_week + 7);
 | 
	
		
			
				|  |  |         return df2.format(c.getTime());
 | 
	
		
			
				|  |  |         LocalDate localDate = dateToLocalDate(date).with(WeekFields.ISO.dayOfWeek(),7L);
 | 
	
		
			
				|  |  |         return dateFormatter.format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1076,28 +915,17 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static long getWorkDays(String start, String end){
 | 
	
		
			
				|  |  |         SimpleDateFormat myFormatter = new SimpleDateFormat(YYYY_MM_DD);
 | 
	
		
			
				|  |  |         long day = 0;
 | 
	
		
			
				|  |  |         Calendar startCal = Calendar.getInstance();
 | 
	
		
			
				|  |  |         Calendar endCal = Calendar.getInstance();
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             startCal.setTime(myFormatter.parse(start));
 | 
	
		
			
				|  |  |             endCal.setTime(myFormatter.parse(end));
 | 
	
		
			
				|  |  |         } catch (ParseException e) {
 | 
	
		
			
				|  |  |             System.out.println("日期格式非法");
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             return day;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         while (startCal.compareTo(endCal) <= 0) {
 | 
	
		
			
				|  |  |         LocalDate localDateStart =LocalDate.parse(start,dateFormatter);
 | 
	
		
			
				|  |  |         LocalDate localDateEnd =LocalDate.parse(end,dateFormatter);
 | 
	
		
			
				|  |  |         while (!localDateEnd.isBefore(localDateStart)) {
 | 
	
		
			
				|  |  |             //如果不是周六或者周日则工作日+1
 | 
	
		
			
				|  |  |             if (startCal.get(Calendar.DAY_OF_WEEK) != 7 && startCal.get(Calendar.DAY_OF_WEEK) != 1) {
 | 
	
		
			
				|  |  |             if (localDateStart.getDayOfWeek().getValue() <6) {
 | 
	
		
			
				|  |  |                 day++;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             startCal.add(Calendar.DAY_OF_MONTH, 1);
 | 
	
		
			
				|  |  |             localDateStart = localDateStart.plusDays(1);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return day;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1105,28 +933,19 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getFristDayOfMonth() {
 | 
	
		
			
				|  |  |         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  |         // 获取前月的第一天
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.add(Calendar.MONTH, 0);
 | 
	
		
			
				|  |  |         c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
 | 
	
		
			
				|  |  |         String first = format.format(c.getTime());
 | 
	
		
			
				|  |  |         return format.format(c.getTime());
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());
 | 
	
		
			
				|  |  |         return dateFormatter.format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取当月最后一天
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getLastDayOfMonth(){
 | 
	
		
			
				|  |  |         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  |         // 获取前月的第一天
 | 
	
		
			
				|  |  |         Calendar ca = Calendar.getInstance();
 | 
	
		
			
				|  |  |         ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
 | 
	
		
			
				|  |  |         return format.format(ca.getTime());
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth());
 | 
	
		
			
				|  |  |         return dateFormatter.format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static int getSignYear(){
 | 
	
		
			
				|  |  |         Calendar ca = Calendar.getInstance();
 | 
	
		
			
				|  |  |         if(getNowMonth()>=7){
 | 
	
		
			
				|  |  |         if(LocalDate.now().getMonthValue()>=7){
 | 
	
		
			
				|  |  |             return getNowYear();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return getNowYear()-1;
 | 
	
	
		
			
				|  | @ -1139,11 +958,9 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date getDueDate(Date date){
 | 
	
		
			
				|  |  |         Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |         cal.setTime(date);
 | 
	
		
			
				|  |  |         cal.add(Calendar.MONTH,9);
 | 
	
		
			
				|  |  |         cal.add(Calendar.DAY_OF_YEAR,7);
 | 
	
		
			
				|  |  |         return cal.getTime();
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = dateToLocalDateTime(date);
 | 
	
		
			
				|  |  |         localDateTime = localDateTime.plusMonths(9).plusDays(7);
 | 
	
		
			
				|  |  |         return Date.from(localDateTime.atZone(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1153,10 +970,9 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date getPrenatalInspectorDate(Date date,Integer day){
 | 
	
		
			
				|  |  |         Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |         cal.setTime(date);
 | 
	
		
			
				|  |  |         cal.add(Calendar.DAY_OF_YEAR,day);
 | 
	
		
			
				|  |  |         return cal.getTime();
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = dateToLocalDateTime(date);
 | 
	
		
			
				|  |  |         localDateTime = localDateTime.plusDays(day);
 | 
	
		
			
				|  |  |         return Date.from(localDateTime.atZone(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1166,10 +982,9 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Time hhmmStrToTime(String hhmm){
 | 
	
		
			
				|  |  |         Time time = null;
 | 
	
		
			
				|  |  |         DateFormat sdf = new SimpleDateFormat("HH:mm");
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             Date date = sdf.parse(hhmm);
 | 
	
		
			
				|  |  |             time = new Time(date.getTime());
 | 
	
		
			
				|  |  |             String s[] = hhmm.split(":");
 | 
	
		
			
				|  |  |             time = new Time(Integer.parseInt(s[0]),Integer.parseInt(s[1]),0);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -1226,7 +1041,7 @@ public class DateUtil {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static long compareDateTime(java.util.Date s1, java.util.Date s2) {
 | 
	
		
			
				|  |  |     public static long compareDateTime(Date s1, Date s2) {
 | 
	
		
			
				|  |  |         return s1.getTime() - s2.getTime();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -1236,18 +1051,14 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @param days 天数�?
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static java.util.Date setDateTime(java.util.Date date,int days){
 | 
	
		
			
				|  |  |         Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |         cal.setTime(date);
 | 
	
		
			
				|  |  |         cal.set(Calendar.DATE, cal.get(Calendar.DATE) +(days));
 | 
	
		
			
				|  |  |         return  cal.getTime();
 | 
	
		
			
				|  |  |     public static Date setDateTime(Date date,int days){
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = dateToLocalDateTime(date).plusDays(days);
 | 
	
		
			
				|  |  |         return Date.from(localDateTime.atZone(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static java.util.Date setDateHours(java.util.Date date,int hours){
 | 
	
		
			
				|  |  |         Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |         cal.setTime(date);
 | 
	
		
			
				|  |  |         cal.set(Calendar.HOUR, cal.get(Calendar.HOUR) +(hours));
 | 
	
		
			
				|  |  |         return  cal.getTime();
 | 
	
		
			
				|  |  |     public static java.util.Date setDateHours(Date date,int hours){
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = dateToLocalDateTime(date).plusHours(hours);
 | 
	
		
			
				|  |  |         return Date.from(localDateTime.atZone(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1255,9 +1066,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getLastYear(){
 | 
	
		
			
				|  |  |         Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |         cal.add(Calendar.YEAR,-1);
 | 
	
		
			
				|  |  |         return dateToStrLong(cal.getTime());
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = LocalDateTime.now().plusYears(-1);
 | 
	
		
			
				|  |  |         return dateTimeFormatter.format(localDateTime);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1266,26 +1076,13 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getChildAge(Date date){
 | 
	
		
			
				|  |  |         Calendar now = Calendar.getInstance();
 | 
	
		
			
				|  |  |         Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |         cal.setTime(date);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         int year = now.get(Calendar.YEAR)-cal.get(Calendar.YEAR);
 | 
	
		
			
				|  |  |         int month = now.get(Calendar.MONTH)-cal.get(Calendar.MONTH);
 | 
	
		
			
				|  |  |         if(month<0){
 | 
	
		
			
				|  |  |             year--;
 | 
	
		
			
				|  |  |             month+=12;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         int day = now.get(Calendar.DAY_OF_MONTH)-cal.get(Calendar.DAY_OF_MONTH);
 | 
	
		
			
				|  |  |         if(day<0){
 | 
	
		
			
				|  |  |             month--;
 | 
	
		
			
				|  |  |             Calendar temp = Calendar.getInstance();
 | 
	
		
			
				|  |  |             temp.setTime(date);
 | 
	
		
			
				|  |  |             temp.add(Calendar.MONTH,1);
 | 
	
		
			
				|  |  |             temp.set(Calendar.DAY_OF_MONTH,1);
 | 
	
		
			
				|  |  |             temp.add(Calendar.DAY_OF_MONTH,-1);
 | 
	
		
			
				|  |  |             day = temp.get(Calendar.DAY_OF_MONTH)+now.get(Calendar.DAY_OF_MONTH)-cal.get(Calendar.DAY_OF_MONTH);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         LocalDate now = LocalDate.now();
 | 
	
		
			
				|  |  |         LocalDate localDate = dateToLocalDate(date);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         int year = localDate.until(now).getYears();
 | 
	
		
			
				|  |  |         int month = localDate.until(now).getMonths();
 | 
	
		
			
				|  |  |         int day = localDate.until(now).getDays();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String y = year>0? year+"岁":"";
 | 
	
		
			
				|  |  |         String m = month>0? month+"月":"";
 | 
	
		
			
				|  |  |         String d = day>0? day+"天":"";
 | 
	
	
		
			
				|  | @ -1294,37 +1091,28 @@ public class DateUtil {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static int getWeekOfMonth(String dateString){
 | 
	
		
			
				|  |  |         Date date = strToDate(dateString);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return getWeekOfMonth(date);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static int getWeekOfMonth(Date date){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  |         calendar.setTime(date);
 | 
	
		
			
				|  |  |         int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH);
 | 
	
		
			
				|  |  |         return weekOfMonth;
 | 
	
		
			
				|  |  |         LocalDate localDate = dateToLocalDate(date);
 | 
	
		
			
				|  |  |         return localDate.get(WeekFields.ISO.weekOfMonth());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     //将时间维度查出来的quotaDate转成yyyy-MM
 | 
	
		
			
				|  |  |     public static String changeQuotaDate(Date quotaDate){
 | 
	
		
			
				|  |  |         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
 | 
	
		
			
				|  |  |         String  date = sdf.format(quotaDate);
 | 
	
		
			
				|  |  |         return date;
 | 
	
		
			
				|  |  |         LocalDate localDate = dateToLocalDate(quotaDate);
 | 
	
		
			
				|  |  |         return DateTimeFormatter.ofPattern(YYYY_MM).format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String getYear(String strDate, String format){
 | 
	
		
			
				|  |  |         Date date = strToDate(strDate,format);
 | 
	
		
			
				|  |  |         Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  |         calendar.setTime(date);
 | 
	
		
			
				|  |  |         return calendar.get(Calendar.YEAR)+"";
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.parse(strDate,dateFormatter);
 | 
	
		
			
				|  |  |         return localDate.getYear()+"";
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String getMonth(String dateString){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Date date = strToDate(dateString);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return new SimpleDateFormat(YYYY_MM).format(date);
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.parse(dateString,dateFormatter);
 | 
	
		
			
				|  |  |         return DateTimeFormatter.ofPattern(YYYY_MM).format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1333,9 +1121,10 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return返回短时间格式 yyyy-MM-dd
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date getDateShort(Date date) {
 | 
	
		
			
				|  |  |         SimpleDateFormat formatter = new SimpleDateFormat(YYYY_MM_DD);
 | 
	
		
			
				|  |  |         String dateString = formatter.format(date);
 | 
	
		
			
				|  |  |         return strToDate(dateString, YYYY_MM_DD);
 | 
	
		
			
				|  |  |         LocalDate localDate = dateToLocalDate(date);
 | 
	
		
			
				|  |  |         LocalTime localTime = LocalTime.of(0,0,0);
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = LocalDateTime.of(localDate,localTime);
 | 
	
		
			
				|  |  |         return Date.from(localDateTime.atZone(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1343,25 +1132,15 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getFristDayOfMonthThisDate(Date date) {
 | 
	
		
			
				|  |  |         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  |         // 获取前月的第一天
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.setTime(date);
 | 
	
		
			
				|  |  |         c.add(Calendar.MONTH, 0);
 | 
	
		
			
				|  |  |         c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
 | 
	
		
			
				|  |  |         String first = format.format(c.getTime());
 | 
	
		
			
				|  |  |         return format.format(c.getTime());
 | 
	
		
			
				|  |  |         LocalDate localDate = dateToLocalDate(date).with(TemporalAdjusters.firstDayOfMonth());
 | 
	
		
			
				|  |  |         return dateFormatter.format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取当月最后一天
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static String getLastDayOfMonthThisDate(Date date){
 | 
	
		
			
				|  |  |         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  |         // 获取前月的第一天
 | 
	
		
			
				|  |  |         Calendar ca = Calendar.getInstance();
 | 
	
		
			
				|  |  |         ca.setTime(date);
 | 
	
		
			
				|  |  |         ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
 | 
	
		
			
				|  |  |         return format.format(ca.getTime());
 | 
	
		
			
				|  |  |         LocalDate localDate = dateToLocalDate(date).with(TemporalAdjusters.lastDayOfMonth());
 | 
	
		
			
				|  |  |         return dateFormatter.format(localDate);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1370,10 +1149,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static int getWeekByDate(Date date){
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         c.setTime(date);
 | 
	
		
			
				|  |  |         int week = c.get(Calendar.DAY_OF_WEEK);
 | 
	
		
			
				|  |  |         return week;
 | 
	
		
			
				|  |  |         LocalDate localDate = dateToLocalDate(date);
 | 
	
		
			
				|  |  |         return localDate.getDayOfWeek().getValue()+1;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1381,13 +1158,10 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date getDateStart(){
 | 
	
		
			
				|  |  |         Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  |         calendar.setTime(new Date());
 | 
	
		
			
				|  |  |         calendar.set(Calendar.HOUR_OF_DAY, 0);
 | 
	
		
			
				|  |  |         calendar.set(Calendar.MINUTE, 0);
 | 
	
		
			
				|  |  |         calendar.set(Calendar.SECOND, 0);
 | 
	
		
			
				|  |  |         Date zero = calendar.getTime();
 | 
	
		
			
				|  |  |         return zero;
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.now();
 | 
	
		
			
				|  |  |         LocalTime localTime = LocalTime.of(0,0,0);
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = LocalDateTime.of(localDate,localTime);
 | 
	
		
			
				|  |  |         return Date.from(localDateTime.atZone(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1395,24 +1169,13 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date getDateEnd(){
 | 
	
		
			
				|  |  |         Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  |         calendar.setTime(new Date());
 | 
	
		
			
				|  |  |         calendar.set(Calendar.HOUR_OF_DAY, 23);
 | 
	
		
			
				|  |  |         calendar.set(Calendar.MINUTE, 59);
 | 
	
		
			
				|  |  |         calendar.set(Calendar.SECOND, 59);
 | 
	
		
			
				|  |  |         Date zero = calendar.getTime();
 | 
	
		
			
				|  |  |         return zero;
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.now();
 | 
	
		
			
				|  |  |         LocalTime localTime = LocalTime.of(23,59,59);
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = LocalDateTime.of(localDate,localTime);
 | 
	
		
			
				|  |  |         return Date.from(localDateTime.atZone(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static void main(String[] args) {
 | 
	
		
			
				|  |  |         Calendar c = Calendar.getInstance();
 | 
	
		
			
				|  |  |         int week = c.get(Calendar.DAY_OF_WEEK);
 | 
	
		
			
				|  |  |         System.out.println(week);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.now();
 | 
	
		
			
				|  |  |         System.out.println(localDate.getDayOfWeek().getValue());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 根据身份证的号码算出当前身份证持有者的年龄
 | 
	
		
			
				|  |  |      *
 | 
	
	
		
			
				|  | @ -1422,32 +1185,26 @@ public class DateUtil {
 | 
	
		
			
				|  |  |     public static int getAgeForIdcard(String idcard) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             int age = 0;
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  |             if (org.apache.commons.lang3.StringUtils.isEmpty(idcard)) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (StringUtils.isEmpty(idcard)) {
 | 
	
		
			
				|  |  |                 return age;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             String birth = "";
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (idcard.length() == 18) {
 | 
	
		
			
				|  |  |                 birth = idcard.substring(6, 14);
 | 
	
		
			
				|  |  |             } else if (idcard.length() == 15) {
 | 
	
		
			
				|  |  |                 birth = "19" + idcard.substring(6, 12);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  |             int year = Integer.valueOf(birth.substring(0, 4));
 | 
	
		
			
				|  |  |             int month = Integer.valueOf(birth.substring(4, 6));
 | 
	
		
			
				|  |  |             int day = Integer.valueOf(birth.substring(6));
 | 
	
		
			
				|  |  |             Calendar cal = Calendar.getInstance();
 | 
	
		
			
				|  |  |             age = cal.get(Calendar.YEAR) - year;
 | 
	
		
			
				|  |  |             //周岁计算
 | 
	
		
			
				|  |  |             if (cal.get(Calendar.MONTH) < (month - 1) || (cal.get(Calendar.MONTH) == (month - 1) && cal.get(Calendar.DATE) < day)) {
 | 
	
		
			
				|  |  |                 age--;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  |             return age;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             int year = Integer.parseInt(birth.substring(0, 4));
 | 
	
		
			
				|  |  |             int month = Integer.parseInt(birth.substring(4, 6));
 | 
	
		
			
				|  |  |             int day = Integer.parseInt(birth.substring(6));
 | 
	
		
			
				|  |  |             LocalDate localDate = LocalDate.of(year,month,day);
 | 
	
		
			
				|  |  |             return localDate.until(LocalDate.now()).getYears();
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return -1;
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -1455,28 +1212,24 @@ public class DateUtil {
 | 
	
		
			
				|  |  |     public static List<Map<String,Object>> findDates(Date dBegin, Date dEnd) {
 | 
	
		
			
				|  |  |         List<Map<String,Object>> lDate = new ArrayList();
 | 
	
		
			
				|  |  |         Map<String,Object> st = new HashedMap();
 | 
	
		
			
				|  |  |         st.put("date",DateUtil.dateToStr(dBegin,"yyyy-MM-dd"));
 | 
	
		
			
				|  |  |         st.put("date",dateToStr(dBegin,"yyyy-MM-dd"));
 | 
	
		
			
				|  |  |         st.put("avg",0);
 | 
	
		
			
				|  |  |         st.put("count", 0);
 | 
	
		
			
				|  |  |         lDate.add(st);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Calendar calBegin = Calendar.getInstance();
 | 
	
		
			
				|  |  |         // 使用给定的 Date 设置此 Calendar 的时间
 | 
	
		
			
				|  |  |         calBegin.setTime(dBegin);
 | 
	
		
			
				|  |  |         LocalDate calBegin = dateToLocalDate(dBegin);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Calendar calEnd = Calendar.getInstance();
 | 
	
		
			
				|  |  |         // 使用给定的 Date 设置此 Calendar 的时间
 | 
	
		
			
				|  |  |         calEnd.setTime(dEnd);
 | 
	
		
			
				|  |  |         LocalDate calEnd = dateToLocalDate(dEnd);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // 测试此日期是否在指定日期之后
 | 
	
		
			
				|  |  |         while (dEnd.after(calBegin.getTime())) {
 | 
	
		
			
				|  |  |         while (calEnd.until(calBegin,ChronoUnit.DAYS)>0) {
 | 
	
		
			
				|  |  |             // 根据日历的规则,为给定的日历字段添加或减去指定的时间量
 | 
	
		
			
				|  |  |             calBegin.add(Calendar.DAY_OF_MONTH, 1);
 | 
	
		
			
				|  |  |             if(!dEnd.after(calBegin.getTime())){
 | 
	
		
			
				|  |  |             calBegin.plusDays(1);
 | 
	
		
			
				|  |  |             if(calEnd.until(calBegin,ChronoUnit.DAYS)<0){
 | 
	
		
			
				|  |  |                 break;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             Map<String,Object> stt = new HashedMap();
 | 
	
		
			
				|  |  |             stt.put("date",DateUtil.dateToStr(calBegin.getTime(),"yyyy-MM-dd"));
 | 
	
		
			
				|  |  |             stt.put("date",dateFormatter.format(calBegin));
 | 
	
		
			
				|  |  |             stt.put("avg",0);
 | 
	
		
			
				|  |  |             stt.put("count", 0);
 | 
	
		
			
				|  |  |             lDate.add(stt);
 | 
	
	
		
			
				|  | @ -1501,8 +1254,8 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static boolean isInArea(Date time,Date begin,Date end) {
 | 
	
		
			
				|  |  |         Long beginTime = DateUtil.compareDateTime(time,begin);
 | 
	
		
			
				|  |  |         Long endTime = DateUtil.compareDateTime(time, end);
 | 
	
		
			
				|  |  |         Long beginTime = compareDateTime(time,begin);
 | 
	
		
			
				|  |  |         Long endTime = compareDateTime(time, end);
 | 
	
		
			
				|  |  |         if (beginTime > 0 && endTime < 0) {
 | 
	
		
			
				|  |  |             return true;
 | 
	
		
			
				|  |  |         } else {
 | 
	
	
		
			
				|  | @ -1596,10 +1349,9 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Date secondTransfor(int seconds){
 | 
	
		
			
				|  |  |         Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  |         calendar.set(1970,Calendar.JANUARY,1,0,0,0);
 | 
	
		
			
				|  |  |         calendar.add(Calendar.SECOND,seconds);
 | 
	
		
			
				|  |  |         return calendar.getTime();
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = LocalDateTime.of(1970,1,1,0,0,0);
 | 
	
		
			
				|  |  |         localDateTime.plusSeconds(seconds);
 | 
	
		
			
				|  |  |         return Date.from(localDateTime.plusSeconds(seconds).atZone(zone).toInstant());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1633,11 +1385,11 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static List<String> getTimeByBeforeAndAfterTime(String time,long l){
 | 
	
		
			
				|  |  |         List<String> list = new ArrayList<>();
 | 
	
		
			
				|  |  |         Date date = DateUtil.strToDate(time);
 | 
	
		
			
				|  |  |         Date date = strToDate(time);
 | 
	
		
			
				|  |  |         Date beforeTime = new Date(date.getTime()-l);
 | 
	
		
			
				|  |  |         Date afterTime = new Date(date.getTime()+l);
 | 
	
		
			
				|  |  |         list.add(DateUtil.dateToStrLong(beforeTime));
 | 
	
		
			
				|  |  |         list.add(DateUtil.dateToStrLong(afterTime));
 | 
	
		
			
				|  |  |         list.add(dateToStrLong(beforeTime));
 | 
	
		
			
				|  |  |         list.add(dateToStrLong(afterTime));
 | 
	
		
			
				|  |  |         return list;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -1645,21 +1397,14 @@ public class DateUtil {
 | 
	
		
			
				|  |  |      * 秒数
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public static Long behindSubBefore(String date){
 | 
	
		
			
				|  |  |         Date startDate = DateUtil.strToDate(date);
 | 
	
		
			
				|  |  |         Date currentDate = DateUtil.getNowDate();
 | 
	
		
			
				|  |  |         Date startDate = strToDate(date);
 | 
	
		
			
				|  |  |         Date currentDate = getNowDate();
 | 
	
		
			
				|  |  |         return (startDate.getTime() - currentDate.getTime()) / 1000;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static int getWeekByString(String date){
 | 
	
		
			
				|  |  |         Calendar cal = Calendar.getInstance(); // 获得一个日历
 | 
	
		
			
				|  |  |         Date datet = null;
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             datet = simpleDateParse(date);
 | 
	
		
			
				|  |  |             cal.setTime(datet);
 | 
	
		
			
				|  |  |         } catch (ParseException e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 指示一个星期中的某天。
 | 
	
		
			
				|  |  |         LocalDate localDate = LocalDate.parse(date,dateFormatter);
 | 
	
		
			
				|  |  |         int w = localDate.getDayOfWeek().getValue(); // 指示一个星期中的某天。
 | 
	
		
			
				|  |  |         if (w < 0)
 | 
	
		
			
				|  |  |             w = 0;
 | 
	
		
			
				|  |  |         return w;
 | 
	
	
		
			
				|  | @ -1669,4 +1414,56 @@ public class DateUtil {
 | 
	
		
			
				|  |  |         String[] weekDays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };
 | 
	
		
			
				|  |  |         return weekDays[getWeekByString(date)];
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static void main(String[] args) {
 | 
	
		
			
				|  |  |         // date与instant的相互转化 -- start
 | 
	
		
			
				|  |  |         Instant now = Instant.now();
 | 
	
		
			
				|  |  |         System.out.println("时间戳与北京时间相差8个时区:"+now);
 | 
	
		
			
				|  |  | // 我们去查看源码: 272行
 | 
	
		
			
				|  |  | // 发现是采用的UTC,如果你需要使用北京时间,则需要增加8个小时
 | 
	
		
			
				|  |  |         Instant nowUTC = Instant.now().plusMillis(TimeUnit.HOURS.toMillis(8));
 | 
	
		
			
				|  |  |         System.out.println("nowUTC :"+nowUTC );
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Date date = Date.from(now);
 | 
	
		
			
				|  |  |         System.out.println(date);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Instant instant = date.toInstant();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | // LocalDate、LocalDateTime 的now()方法使用的是系统默认时区 不存在Instant.now()的时间问题。
 | 
	
		
			
				|  |  | // date与instant的相互转化 -- end
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | // LocalDateTime代替Calendar -- start
 | 
	
		
			
				|  |  |         ZoneId zoneId = ZoneId.systemDefault();
 | 
	
		
			
				|  |  |         LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zoneId);
 | 
	
		
			
				|  |  |         int year = localDateTime.getYear();// 年
 | 
	
		
			
				|  |  |         int month = localDateTime.getMonthValue();// 月
 | 
	
		
			
				|  |  |         int dayOfMonth = localDateTime.getDayOfMonth();// 日
 | 
	
		
			
				|  |  |         int hour = localDateTime.getHour();// 小时
 | 
	
		
			
				|  |  |         int minute = localDateTime.getMinute();// 分钟
 | 
	
		
			
				|  |  |         int second = localDateTime.getSecond();// 秒
 | 
	
		
			
				|  |  |         System.out.println(year);
 | 
	
		
			
				|  |  |         System.out.println(month);
 | 
	
		
			
				|  |  |         System.out.println(dayOfMonth);
 | 
	
		
			
				|  |  |         System.out.println(hour);
 | 
	
		
			
				|  |  |         System.out.println(minute);
 | 
	
		
			
				|  |  |         System.out.println(second);
 | 
	
		
			
				|  |  | // LocalDateTime代替Calendar -- end
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | // DateTimeFormatter代替SimpleDateFormat
 | 
	
		
			
				|  |  |         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");// 24小时制
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | // Date格式化成String -- start
 | 
	
		
			
				|  |  |         String format = dateTimeFormatter.format(localDateTime);
 | 
	
		
			
				|  |  |         System.out.println("Date格式化成String:" + format);
 | 
	
		
			
				|  |  | // Date格式化成String -- end
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | // String获得Date -- start
 | 
	
		
			
				|  |  |         LocalDateTime parse = LocalDateTime.parse(format, dateTimeFormatter);
 | 
	
		
			
				|  |  |         ZoneOffset offset = OffsetDateTime.now().getOffset();
 | 
	
		
			
				|  |  |         Instant instant2 = parse.toInstant(offset);
 | 
	
		
			
				|  |  |         Date date1 = Date.from(instant2);
 | 
	
		
			
				|  |  |         System.out.println("String获得Date:" + date1);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |