Date和LocalDate的相互转换

简述
Date对象表示特定的日期和时间,而LocalDate(Java8)对象只包含没有任何时间信息的日期。
Date转LocalDate
步骤如下:
1.将java.util.Date转换为ZonedDateTime。
2.使用它的toLocalDate()方法从ZonedDateTime获取LocalDate。

package insping;

import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;

public class Test {

    public static void main(String[] args) {
        Date date = new Date();
        Instant instant = date.toInstant();
        ZoneId zoneId = ZoneId.systemDefault();

        // atZone()方法返回在指定时区从此Instant生成的ZonedDateTime。
        LocalDate localDate = instant.atZone(zoneId).toLocalDate();
        System.out.println("Date = " + date);
        System.out.println("LocalDate = " + localDate);
    }
}

LocalDate转Date
步骤:
1.使用ZonedDateTime将LocalDate转换为Instant。
2.使用from()方法从Instant对象获取Date的实例

package insping;

import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;

public class Test {

    public static void main(String[] args) {
        ZoneId zoneId = ZoneId.systemDefault();
        LocalDate localDate = LocalDate.now();
        ZonedDateTime zdt = localDate.atStartOfDay(zoneId);

        Date date = Date.from(zdt.toInstant());

        System.out.println("LocalDate = " + localDate);
        System.out.println("Date = " + date);

    }
}

你可能感兴趣的:(个人)