直接上代码
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Date;
public class DateUtil {
private static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";//默认日期时间格式
private static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";//默认日期格式
/**
* LocalDateTime 转 LocalDate
* 直接调用 toLocalDate 就可以
*
* @param localDateTime LocalDateTime 对象
* @return 转换后的 LocalDate 对象
*/
public static LocalDate localDateTimeToLocalDate(LocalDateTime localDateTime) {
return localDateTime.toLocalDate();
}
/**
* LocalDateTime 转 Date
* @param localDateTime LocalDateTime 对象
* @return 转换后的 Date 对象
*/
public static Date localDateTimeToDate(LocalDateTime localDateTime){
//获取系统默认时区
ZoneId zoneId = ZoneId.systemDefault();
//时区的日期和时间
ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);
//获取时刻并返回
return Date.from(zonedDateTime.toInstant());
}
/**
* LocalDate 转 LocalDateTime
* 从当天0点开始
*
* @param localDate LocalDate 对象
* @return 转换后的 LocalDateTime 对象
*/
public static LocalDateTime localDateToLocalDateTime(LocalDate localDate){
return localDate.atStartOfDay();
}
/**
* LocalDate 转 Date
* @param localDate LocalDate对象
* @return 转换后的Date对象
*/
public static Date localDateToDate(LocalDate localDate){
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = localDate.atStartOfDay(zoneId);
return Date.from(zonedDateTime.toInstant());
}
/**
* Date 转 LocalDateTime
* @param date Date对象
* @return 转换后的LocalDateTime对象
*/
public static LocalDateTime dateToLocalDateTime(Date date){
ZoneId zoneId = ZoneId.systemDefault();
//先转ZonedDateTime
ZonedDateTime zonedDateTime = date.toInstant().atZone(zoneId);
//再去转LocalDateTime
return zonedDateTime.toLocalDateTime();
}
/**
* date 转 LocalDate
* @param date Date对象
* @return 转换后的LocalDate对象
*/
public static LocalDate dateToLocalDate(Date date){
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = date.toInstant().atZone(zoneId);
return zonedDateTime.toLocalDate();
}
/**
* LocalDate转字符串
* @param date LocalDate对象
* @return 转换后的字符串
*/
public static String toString(LocalDate date){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DEFAULT_DATE_PATTERN);//LocalDate只支持日期部分
return date.format(formatter);
}
/**
* LocalDate转字符串
* @param date LocalDate对象
* @param pattern 格式化字符串
* @return 转换后的字符串
*/
public static String toString(LocalDate date,String pattern){
if(pattern==null || pattern.trim().isEmpty()){
pattern=DEFAULT_DATE_PATTERN;//LocalDate只支持日期部分
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return date.format(formatter);
}
/**
* LocalDateTime转字符串
* @param date LocalDateTime对象
* @return 转换后的字符串
*/
public static String toString(LocalDateTime date){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DEFAULT_PATTERN);
return date.format(formatter);
}
/**
* LocalDateTime转字符串
* @param date LocalDateTime对象
* @param pattern 格式化字符串
* @return 转换后的字符串
*/
public static String toString(LocalDateTime date,String pattern){
if(pattern==null || pattern.trim().isEmpty()){
pattern=DEFAULT_PATTERN;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return date.format(formatter);
}
/**
* Date转字符串
* @param date Date对象
* @return 转换后的字符串
*/
public static String toString(Date date){
SimpleDateFormat formatter = new SimpleDateFormat(DEFAULT_PATTERN);
return formatter.format(date);
}
/**
* Date转字符串
* @param date Date对象
* @param pattern 格式化字符串
* @return 转换后的字符串
*/
public static String toString(Date date,String pattern){
if(pattern==null || pattern.trim().isEmpty()){
pattern=DEFAULT_PATTERN;
}
SimpleDateFormat formatter = new SimpleDateFormat(pattern);
return formatter.format(date);
}
}
微信扫码查看本文
发表评论