Date工具类
可以实现
String、Date、LocalDate
String、Date、LocalDateTime互转
import java.text.ParseException;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
/**
* Date工具类
* String、Date、LocalDate
* String、Date、LocalDateTime互转
*/
public class DateUtils {
private DateUtils(){
}
private static final DateTimeFormatter FMT_LOCAL_DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd");
private static final DateTimeFormatter FMT_LOCAL_DATETIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private static final FastDateFormat FMT_SIMPLE_DATE = FastDateFormat.getInstance("yyyy-MM-dd");
private static final FastDateFormat FMT_SIMPLE_DATETIME = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss");
public static String getLocalDateStr(LocalDate date){
return date.format(FMT_LOCAL_DATE);
}
public static String getLocalDateTimeStr(LocalDateTime date){
return date.format(FMT_LOCAL_DATETIME);
}
public static LocalDate getStrByLocalDate(String str){
return LocalDate.parse(str,FMT_LOCAL_DATE);
}
public static LocalDateTime getStrByLocalDateTime(String str){
return LocalDateTime.parse(str,FMT_LOCAL_DATETIME);
}
public static Date getDate(String date) {
try {
return FMT_SIMPLE_DATE.parse(date);
} catch (ParseException e) {
throw new DateConverException("日期转换异常:"+date);
}
}
public static Date getDateTime(String date) {
try {
return FMT_SIMPLE_DATETIME.parse(date);
} catch (ParseException e) {
throw new DateConverException("日期转换异常:"+date);
}
}
public static String getDateStr(Date date) {
return FMT_SIMPLE_DATE.format(date);
}
public static String getDateTimeStr(Date date) {
return FMT_SIMPLE_DATETIME.format(date);
}
public static Date transformDateTime(LocalDateTime localDateTime){
ZoneId zone = ZoneId.systemDefault();
Instant instant = localDateTime.atZone(zone).toInstant();
return Date.from(instant);
}
public static LocalDateTime dateToLocalDateTime(Date date) {
Instant instant = date.toInstant();
ZoneId zone = ZoneId.systemDefault();
return LocalDateTime.ofInstant(instant, zone);
}
public static LocalDate dateToLocalDate(Date date) {
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}
public static Date transformDate(LocalDate localDate){
ZoneId zone = ZoneId.systemDefault();
Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();
return Date.from(instant);
}
}