• 如何将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

  • 相关阅读:
    P3916 图的遍历
    Python习题详解
    vim的使用快捷键之删除、复制、粘贴
    什么是http无状态?怎么解决的?
    给定一个由 [’, ]’, ( ,‘)’组成的字符串,请问最少插入多少个括号就能使这个字符串的所有括号左右配对。
    【前端】JavaScript
    Selenium定位之find_element方法
    java计算机毕业设计网上图书分享系统源码+系统+mysql数据库+lw文档+部署
    C++炸弹小游戏
    Spring系统学习 -Spring IOC 的XML管理Bean之类类型属性赋值、数组类型属性赋值、集合类属性赋值
  • 原文地址:https://blog.csdn.net/m0_70748381/article/details/126948754