Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

 更新时间:2025年04月12日 13:54:33   作者:一个默默小透明  
这篇文章主要介绍了Java中日期时间转换的多种方法,包括将Date转换为LocalDateTime、LocalDate等,以及将时间戳转换为LocalDateTime,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、Date转LocalDateTime

    @Test
    public void test06(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // Date
        Date date = new Date();
        System.out.println("Date\t" + sdf.format(date));

        // Date 转 LocalDateTime
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime dateToLocalDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
        System.out.println("Date To LocalDateTime\t" + dtf.format(dateToLocalDateTime));
    }

二、Date转LocalDate

    @Test
    public void test07(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // Date
        Date date = new Date();
        System.out.println("Date\t" + sdf.format(date));

        // Date 转 LocalDate
        // 注意 LocalDate 只能有年月日,格式化日期不能有时分秒,否则会报错
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate dateToLocalDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        System.out.println("Date To LocalDate\t" + dtf.format(dateToLocalDate));
    }

三、LocalDateTime转LocalDate

    @Test
    public void test08(){
        // LocalDateTime 转 LocalDate
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate localDateTimeToLocalDate = LocalDateTime.now().toLocalDate();
        System.out.println("LocalDateTime To LocalDate\t" + dtf.format(localDateTimeToLocalDate));
    }

四、LocalDateTime转LocalTime

    @Test
    public void test09(){
        // LocalDateTime 转 LocalTime
        // 注意 LocalTime 只能有时分秒,格式化日期不能有年月日,否则会报错
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
        LocalTime localDateTimeToLocalTime = LocalDateTime.now().toLocalTime();
        System.out.println("LocalDateTime To LocalTime\t" + dtf.format(localDateTimeToLocalTime));
    }

五、LocalDateTime转Date

    @Test
    public void test10(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // LocalDateTime 转 Date
        ZoneId zoneId = ZoneId.systemDefault();
        Date localDateTimeToDate = Date.from(LocalDateTime.now().atZone(zoneId).toInstant());
        System.out.println("LocalDateTime To Date\t" + sdf.format(localDateTimeToDate));
    }

六、LocalDate转Date

    @Test
    public void test11(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // LocalDate 转 Date
        Date LocalDateToDate = Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant());
        System.out.println("LocalDate To Date\t" + sdf.format(LocalDateToDate));
    }

七、时间戳转LocalDateTime

    @Test
    public void test12(){
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        // 时间戳 转 LocalDateTime
        Long timestamp = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
        LocalDateTime time2 = LocalDateTime.ofEpochSecond(timestamp/1000,0,ZoneOffset.ofHours(8));
        System.out.println("时间戳 To LocalDateTime\t" + dtf.format(time2));
    }

总结

到此这篇关于Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码的文章就介绍到这了,更多相关Java中日期时间相互转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Hibernate中的多表查询及抓取策略

    Hibernate中的多表查询及抓取策略

    本文主要介绍了Hibernate中的多表查询及抓取策略,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Java非递归实现删除任意目录的方法

    Java非递归实现删除任意目录的方法

    这篇文章主要为大家详细介绍了Java非递归实现删除任意目录的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • SpringBoot程序的打包与运行的实现

    SpringBoot程序的打包与运行的实现

    本文主要介绍了SpringBoot程序的打包与运行的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Java 函数编程详细介绍

    Java 函数编程详细介绍

    这篇文章主要介绍了Java函数式编程,lambda表达式可以被认为是一个匿名函数,可以在函数接口的上下文中使用。函数接口是只指定一个抽象方法的接口,下面来看文章的详细内容,需要的朋友可以参考下
    2021-11-11
  • Java Deque基本概念和使用方法

    Java Deque基本概念和使用方法

    Deque双端队列是Java Collections Framework的一部分,支持在两端插入和删除操作,它继承自Queue接口,可以作为队列FIFO或栈LIFO使用,本文介绍java Deque基本概念和使用方法,感兴趣的朋友一起看看吧
    2025-03-03
  • 解决Hmily与Feign冲突报错 NullPointerException的问题

    解决Hmily与Feign冲突报错 NullPointerException的问题

    这篇文章主要介绍了解决Hmily与Feign冲突报错 NullPointerException的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 深入理解Java设计模式之适配器模式

    深入理解Java设计模式之适配器模式

    这篇文章主要介绍了JAVA设计模式之适配器模式的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解
    2021-11-11
  • 解决引入Redisson可能会出现项目启动失败的问题

    解决引入Redisson可能会出现项目启动失败的问题

    这篇文章主要介绍了解决引入Redisson可能会出现项目启动失败的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 浅谈HBase在SpringBoot项目里的应用(含HBaseUtil工具类)

    浅谈HBase在SpringBoot项目里的应用(含HBaseUtil工具类)

    这篇文章主要介绍了浅谈HBase在SpringBoot项目里的应用(含HBaseUtil工具类),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • springboot+redis 实现分布式限流令牌桶的示例代码

    springboot+redis 实现分布式限流令牌桶的示例代码

    这篇文章主要介绍了springboot+redis 实现分布式限流令牌桶 ,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论