JAVA常用的时间与各类型相互转换(LocalDateTime、LocalDate、Long、Date、String )

记录一波,随时更正。。。。

DateTimeFormatter ftf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        DateTimeFormatter ftf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        ZoneId zoneId = ZoneId.systemDefault();
        
        System.out.println("string -> long型的年月日::"+ LocalDate.parse("2018-03-11", ftf1).atStartOfDay(zoneId).toInstant().toEpochMilli());
        System.out.println("String -> LocalDate:  " +  LocalDate.parse("2018-03-11", ftf1));
        System.out.println("String -> LocalDateTime:  " +  LocalDateTime.parse("2020-07-15 00:00:00", ftf2));
        
        System.out.println("long -> String型年月日:"+ftf1.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(1594794323956l), zoneId)));
        System.out.println("Long -> Date: " + new Date(1520754566856L));
        System.out.println("Long -> LocalDateTime:  " + LocalDateTime.ofInstant(Instant.ofEpochMilli(1594794323956l), ZoneId.systemDefault()));
        System.out.println("Long -> LocalDate:  " + LocalDateTime.ofInstant(Instant.ofEpochMilli(1594794323956l), ZoneId.systemDefault()).toLocalDate());

        System.out.println("LocalDateTime -> Long:  " + Timestamp.valueOf(LocalDateTime.now()).getTime());
        System.out.println("LocalDateTime -> String:  " + LocalDateTime.now().format(ftf2));
        
        System.out.println("LocalDate -> LocalDateTime: "+LocalDateTime.of(LocalDate.now(),LocalTime.parse("00:00:00")));
        System.out.println("LocalDate -> Long: "+LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli());
        System.out.println("LocalDate -> Date: "+Date.from(LocalDate.now().atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()));
        System.out.println("LocalDate -> String: "+LocalDate.now().format(ftf1));
        
        System.out.println("Date -> String:  " +  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        System.out.println("Date -> LocalDateTime:  " +  LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()));
        System.out.println("Date -> Timestamp:  " + new Timestamp(new Date().getTime()));
        System.out.println("Date -> Long: " + new Date().getTime());
        System.out.println("Date -> Instant:  " + new Date().toInstant());
        
        System.out.println("long -> Long型的当天开始时间:"+longTodayTimeBeginMs(1594794323956l));
        System.out.println("当天开始时间Long型:"+getTodayTimeBeginMs());
        System.out.println("获取当天结束时间Long型:"+getTodayTimeEndMs());
    }

    //当天的0点时刻
    public static Long getTodayTimeBeginMs() {
        //获取当前日期
        LocalDateTime beginTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
        System.out.println("获取当天开始时间:"+beginTime);
        return LocalDateTime.from(beginTime).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
    }

    public static Long getTodayTimeEndMs() {
        //获取当前日期
        LocalDate nowDate = LocalDate.now();
        //设置零点
        LocalDateTime beginTime = LocalDateTime.of(nowDate, LocalTime.MAX);
        System.out.println("获取当天结束时间:"+beginTime);
        return LocalDateTime.from(beginTime).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
    }

    /**
     * 当天的0点时刻(Long型)
     * @return
     */
    public static Long longTodayTimeBeginMs(Long time) {
        LocalDate longToLocalDate = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault()).toLocalDate();
        LocalDateTime beginTime = LocalDateTime.of(longToLocalDate, LocalTime.MIN);
        return LocalDateTime.from(beginTime).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
    }

 

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值