• 如何将Java 8 Calendar转换为 LocalDateTime?


    在 Java 8 中将 Calendar 对象转换为 LocalDateTime 的快速示例。而LocalDateTime.ofInstant() 用于将 Calendar 转换为 LocalDateTime 对象。

    LocalDateTime api 可以完全替代 Date 类,因为 Date 函数的所有功能都以简单而精确的方式完成。

    要将 Calendar 转换为 LocalDateTime,您需要执行以下步骤。

    步骤1:

    首先,使用返回 Calendar 对象的 Calendar.getInstance() 方法创建一个Calendar实例 。

    第2步 :

    接下来,使用calendar.getTimeZone() 方法从日历实例中获取时区。

    第 3 步:

    现在,使用timezone.toZoneId()方法从 TimeZone 类中 获取ZoneId对象。

    最后, 使用日历即时和区域 ID 值调用LocalDateTime.ofInstant(calendar.toInstant(), zoneId)方法

    import java.time.LocalDateTime;
    import java.time.ZoneId;
    import java.util.Calendar;
    import java.util.TimeZone;
    
    public class CalenderToLocalDateTimeExample {
    
        public static void main(String[] args) {
    
            //Create a calender instance.
            Calendar calendar = Calendar.getInstance();
    
            System.out.println("Calender instance : "+calendar);
    
            // Getting the timezone
            TimeZone tz = calendar.getTimeZone();
    
            // Getting zone id
            ZoneId zoneId = tz.toZoneId();
    
            // conversion
            LocalDateTime localDateTime = LocalDateTime.ofInstant(calendar.toInstant(), zoneId);
    
            System.out.println("Local date time object  : "+localDateTime);
    
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    import java.time.LocalDate;
    import java.time.ZoneId;
    import java.util.Calendar;
    import java.util.Date;
    
    public class CalenderToLocalDateExample {
    
        public static void main(String[] args) {
    
            Calendar cal = Calendar.getInstance();
            Date input = cal.getTime();
            LocalDate la = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
    
            System.out.println("Calender to LocalDate : "+la);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    可以在一行中将转换为 Java 8 中的 LocalDateTime 和 LocalDate。为重用 . 编写单独的方法是一种很好的做法:

    import java.time.LocalDate;
    import java.time.LocalDateTime;
    import java.util.Calendar;
    
    public class SingleLineCalenderToLocalDateTimeExample {
    
        public static void main(String[] args) {
    
            //Create a calender instance.
            Calendar calendar = Calendar.getInstance();
    
    
            LocalDateTime singleLineLocalDateTime = getLocalDateTime(calendar);
            LocalDate singleLineLocalDate = getLocalDate(calendar);
    
            System.out.println("Converted LocalDateTime : "+singleLineLocalDateTime);
            System.out.println("Converted LocalDate : "+singleLineLocalDate);
    
        }
    
        private static LocalDateTime getLocalDateTime(Calendar calendar){
    
            return  LocalDateTime.ofInstant(calendar.toInstant(), calendar.getTimeZone().toZoneId());
        }
    
        private static LocalDate getLocalDate(Calendar calendar){
    
            return  LocalDateTime.ofInstant(calendar.toInstant(), calendar.getTimeZone().toZoneId()).toLocalDate();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    显示的程序示例在 GitHub 中。

    CalenderToLocalDateExample.java

    CalenderToLocalDateTimeExample.java

    SingleLineCalenderToLocalDateTimeExample.java

  • 相关阅读:
    React 与 TS 结合使用时组件传参总结
    聚焦数字化项目管理——2023年PMI项目管理大会亮点回顾
    2023.10.27 常见的 锁策略 详解
    专科出身,2年进苏宁,5年跳阿里,论我是怎么快速晋升的?
    火星探测器背后的人工智能:从原理到实战的强化学习
    【从头构筑C#知识体系】1.3 接口
    JSP SSH毕业论文管理统myeclipse开发mysql数据库MVC模式java编程网页设计
    学习在C++中使用位运算符做“int”和“4个char”之间的转换
    [含lw+源码等]微信小程序论文管理系统+后台管理系统[包运行成功]Java毕业设计计算机毕设
    c语言入门---操作符
  • 原文地址:https://blog.csdn.net/m0_70748381/article/details/126948754