加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java8 Date Localdatetime instant 相互转化(转)

发布时间:2020-12-15 07:20:21 所属栏目:Java 来源:网络整理
导读:Java?8中 java.util.Date 类新增了两个方法,分别是from(Instant instant)和toInstant()方法 // Obtains an instance of Date from an Instant object. public static Date from(Instant instant) { ? ? try { ? ? ? ? return new Date(instant.toEpochMilli

Java?8中 java.util.Date 类新增了两个方法,分别是from(Instant instant)和toInstant()方法

// Obtains an instance of Date from an Instant object.
public static Date from(Instant instant) {
? ? try {
? ? ? ? return new Date(instant.toEpochMilli());
? ? } catch (ArithmeticException ex) {
? ? ? ? throw new IllegalArgumentException(ex);
? ? }
}

// Converts this Date object to an Instant.
public Instant toInstant() {
? ? return Instant.ofEpochMilli(getTime());
}

?

这两个方法使我们可以方便的实现将旧的日期类转换为新的日期类,具体思路都是通过Instant当中介,然后通过Instant来创建LocalDateTime(这个类可以很容易获取LocalDate和LocalTime),新的日期类转旧的也是如此,将新的先转成LocalDateTime,然后获取Instant,接着转成Date,具体实现细节如下:

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

// 02. java.util.Date --> java.time.LocalDate
public void UDateToLocalDate() {
? ? java.util.Date date = new java.util.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 UDateToLocalTime() {
? ? java.util.Date date = new java.util.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 LocalDateTimeToUdate() {
? ? LocalDateTime localDateTime = LocalDateTime.now();
? ? ZoneId zone = ZoneId.systemDefault();
? ? Instant instant = localDateTime.atZone(zone).toInstant();
? ? java.util.Date date = Date.from(instant);
}


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

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

?原文链接:https://blog.csdn.net/zhang89xiao/article/details/78789423

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读