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