Java8 java.util.Date与LocalDateTime互转

LocalDateTime表示没有时区的日期和时间。
2种方式

public static void main(String[] args) {
    Date date = new Date();
    System.out.println("date2LocalDateTime1:"+date2LocalDateTime1(date));
    System.out.println("date2LocalDateTime2:"+date2LocalDateTime2(date));
}
/**
 * 方法1
 * @param date
 * @return
 */
public static LocalDateTime date2LocalDateTime1(Date date) {
    if(null == date) {
        return null;
    }
    return LocalDateTime.ofInstant(date.toInstant(),ZoneId.systemDefault());
}
/**
 * 方法2
 * @param date
 * @return
 */
public static LocalDateTime date2LocalDateTime2(Date date) {
    if(null == date) {
        return null;
    }
    return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
}

控制台输出:

date2LocalDateTime1:2018-06-29T14:12:03.049
date2LocalDateTime2:2018-06-29T14:12:03.049

LocalDateTime转Date

public static void main(String[] args) {
    LocalDateTime localDateTime = LocalDateTime.now();
    System.out.println("localDateTime2Date:"+localDateTime2Date(localDateTime));    
}

public static Date localDateTime2Date(LocalDateTime localDateTime) {
    if(null == localDateTime) {
        return null;
    }
    ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
    return Date.from(zonedDateTime.toInstant());
}

控制台输出:

localDateTime2DateFri Jun 29 14:12:03 CST 2018

你可能感兴趣的:(java基础)