Date、LocalDate、LocalDateTime之间的转换和计算

// 01. java.util.Date --> java.time.LocalDateTime
public void date2LocalDateTime() {
    Date date = new Date();
    Instant instant = date.toInstant();
    ZoneId zone = ZoneId.systemDefault();
    LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
}

// 02. java.util.Date --> java.time.LocalDate
public void date2LocalDate() {
    Date date = new Date();
    Instant instant = date.toInstant();
    ZoneId zone = ZoneId.systemDefault();
    LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
    LocalDate localDate = localDateTime.toLocalDate();
}

// 03. java.util.Date --> java.time.LocalTime
public void date2LocalTime() {
    Date date = new Date();
    Instant instant = date.toInstant();
    ZoneId zone = ZoneId.systemDefault();
    LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
    LocalTime localTime = localDateTime.toLocalTime();
}


// 04. java.time.LocalDateTime --> java.util.Date
public void localDateTime2Date() {
    LocalDateTime localDateTime = LocalDateTime.now();
    ZoneId zone = ZoneId.systemDefault();
    Instant instant = localDateTime.atZone(zone).toInstant();
    Date date = Date.from(instant);
}


// 05. java.time.LocalDate --> java.util.Date
public void localDate2Date() {
    LocalDate localDate = LocalDate.now();
    ZoneId zone = ZoneId.systemDefault();
    Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();
    Date date = Date.from(instant);
}

// 06. java.time.LocalTime --> java.util.Date
public void localTime2Date() {
    LocalTime localTime = LocalTime.now();
    LocalDate localDate = LocalDate.now();
    LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
    ZoneId zone = ZoneId.systemDefault();
    Instant instant = localDateTime.atZone(zone).toInstant();
    Date date = Date.from(instant);
}

// 07、计算2个 LocalDate 之间相差多少天,如果是同一天则会返回0
public long differLocalDateDay(LocalDate before,LocalDate after){
    LocalDate before = LocalDate.of(2017, 12, 15);
    LocalDate after = LocalDate.of(2017, 12, 15);
    long differDay = after.toEpochDay() - before.toEpochDay();
    return Math.abs(differDay);
}

// 08、就算2个 LocalDateTime 之间相差多少天,如果是同一天返回0
public long differDayOfLocalDateTime(){
    LocalDateTime first = LocalDateTime.of(2018, 8, 15, 1, 1, 1);
	LocalDateTime second = LocalDateTime.of(2018, 9, 16, 1, 5, 1);
    return Duration.between(first, second).toDays();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值