SC-202004030939_20200902-潘旭

日志

问题:

​ 问题内容:想试试用 java.util.Calendar转换成java.time.LocalDateTime 。calendar类也有toInstant方法,但Calendar是个抽象类不能实例化。

​ 问题来源:

​ 解决问题:,所以我实例化了Calendar的具体子类GregorianCalendar实现了转换。

public static void main(String[] args) {
        Calendar calendar = new GregorianCalendar();
        //GregorianCalendar具体类实现了calendar类的抽象方法
        System.out.println(calendar);
        
        Instant instant = calendar.toInstant() ;
        System.out.println( "Instant[ " + instant + "]");
        
        System.out.println("----------------------");
        
        ZoneId zone = ZoneId.systemDefault(); // 根据OS确定的时区,
        ZonedDateTime zdt = instant.atZone( zone );//将此瞬间与时区结合起来以创建一个ZonedDateTime。
        System.out.println( "ZonedDateTime[ " + zdt + "]");
        System.out.println("----------------------");
        //这将返回LocalDateTime与该日期时间相同的年,月,日和时间的。
        LocalDateTime datetime = zdt.toLocalDateTime() ;        
        // LocalDateTime = LocalDate + LocalTime
        System.out.println( "LocalDateTime[ " + datetime + "]");
    }

吐槽:

​ 今天的内容有点绕,大脑差点就死机了!