博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转
阅读量:6935 次
发布时间:2019-06-27

本文共 2407 字,大约阅读时间需要 8 分钟。

 

 

 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);
}

转载地址:http://ufwnl.baihongyu.com/

你可能感兴趣的文章
应用系统中交互式报表功能解析
查看>>
getReadableDatabase与getWritableDatabase的区别
查看>>
Oracle 基础篇 --- 表空间的操作
查看>>
我的友情链接
查看>>
CentOS 7.2 搭建内网ntp时间服务器
查看>>
Linux内存管理优化技巧集锦
查看>>
Mac OS 下安装 MacVim
查看>>
nginx代理多个flask
查看>>
招不招新人?IT经理很纠结.
查看>>
JPA的学习
查看>>
进行人工智能机器人研发,应该选择哪种编程语言?
查看>>
Mysql主从复制及Tomcat的相关介绍
查看>>
iptables
查看>>
2.1 帮助命令、用户管理、压缩
查看>>
Python学习—函数
查看>>
python3-泊松分布
查看>>
阿里云异构计算团队亮相英伟达2018 GTC大会
查看>>
工作发狂:Mybatis 中$和#千万不要乱用!
查看>>
流程图的制作技巧分享,手把手教你如何画流程图?
查看>>
React数据获取为什么一定要在componentDidMount里面调用?
查看>>