package com.qs.serve.common.util; import com.qs.serve.common.util.model.DateFormatString; import lombok.experimental.UtilityClass; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.Date; /** * @author YenHex * @since 2022/3/1 */ @UtilityClass public class DateUtils { public static Date localDateToDate(LocalDate date){ //LocalDate date = LocalDate.of(2006,07,26); ZoneId zone = ZoneId.systemDefault(); Instant instant = date.atStartOfDay().atZone(zone).toInstant(); java.util.Date da = Date.from(instant); return da; } public static String getString(DateFormatString format){ DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format.getValue()); return LocalDateTime.now().format(formatter); } public static LocalDate toLocalDate(Date date){ // Instant instant = date.toInstant(); // ZoneId zoneId = ZoneId.systemDefault(); // return instant.atZone(zoneId).toLocalDate(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String str = dateFormat.format(date); String[] a = str.split("-"); return LocalDate.of(Integer.parseInt(a[0]),Integer.parseInt(a[1]),Integer.parseInt(a[2])); } public static Date toDate(LocalDate localDate){ ZoneId zoneId = ZoneId.systemDefault(); ZonedDateTime zdt = localDate.atStartOfDay(zoneId); return Date.from(zdt.toInstant()); } /** * 获取设置后得时间 * @param time * @param unit * @param num * @return */ public static LocalDateTime beSetTime(LocalDateTime time, ChronoUnit unit,int num){ if(num>0){ return time.plus(num,unit); }else { return time.minus(-num,unit); } } public static LocalDate beSetDate(LocalDate time,int days){ return time.plusDays(days); } public static Date toDate(String str,String format){ SimpleDateFormat sdf = new SimpleDateFormat(format); try { return sdf.parse(str); } catch (ParseException e) { e.printStackTrace(); } return null; } public static Date toDate(LocalDateTime time){ return Date.from( time.atZone( ZoneId.systemDefault()).toInstant()); } public static double diffTime(long beganTime, long endTime) { return (double)(endTime - beganTime) / 1000.0D; } public static String format(LocalDateTime localDateTime, DateFormatString format){ DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format.getValue()); return localDateTime.format(formatter); } public static String datePath(){ return format(LocalDate.now(),DateFormatString.DATE); } public static String format(LocalDate localDate, DateFormatString format){ DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format.getValue()); return localDate.format(formatter); } public static void main(String[] args) { System.out.println(DateUtils.beSetTime(LocalDateTime.now(), ChronoUnit.DAYS,-2)); // Get the LocalDateTime instance LocalDateTime ldt = LocalDateTime .parse("2019-12-31T19:15:30"); // Get the String representation of this LocalDateTime System.out.println("Original LocalDateTime: " + ldt.toString()); // subtract 200 DAYS to LocalDateTime LocalDateTime value = ldt.minus(200, ChronoUnit.DAYS); // print result System.out.println("LocalDateTime after subtracting DAYS: " + value); } }