java8新特性_18_新时期与日期API_本地时间和时间戳

    @Test
    public void test1(){
        LocalDateTime ldt = LocalDateTime.now();
        System.out.println(ldt);

        LocalDateTime ldt2 = LocalDateTime.of(2019, 9, 26, 21, 48);
        System.out.println(ldt2);

        //可以进行年月计算
        //加两年
        LocalDateTime ldt3 = ldt.plusYears(2);
        System.out.println(ldt3);
        //减两个月
        LocalDateTime ldt4 = ldt.minusMonths(2);
        System.out.println(ldt4);

        System.out.println("年:"+ldt.getYear());
        System.out.println("月:"+ldt.getMonth());
        System.out.println("月:"+ldt.getMonthValue());
        System.out.println("日:"+ldt.getDayOfMonth());
        System.out.println("日:"+ldt.getDayOfWeek());
        System.out.println("日:"+ldt.getDayOfYear());
    }

    //2. Instant 时间戳(以 Unix 元年: 1970年1月1日 00:00:00 到某个时间之间的毫秒值)
    @Test
    public void test2(){
        Instant ins1 = Instant.now();//默认获取 UTC 时区
        System.out.println(ins1);

        OffsetDateTime odt = ins1.atOffset(ZoneOffset.ofHours(8));
        System.out.println(odt);
        //转时间戳
        System.out.println(ins1.getEpochSecond());
    }

    //3. Druation: 计算两个“时间”之间的间隔
    //Period: 计算两个“日期”之间的间隔
    @Test
    public void test3(){
        Instant ins1 = Instant.now();
        try {
            Thread.sleep(1000);
        } catch (InterruptedException ignored) {}
        Instant ins2 = Instant.now();

        Duration btn = Duration.between(ins1, ins2);
        System.out.println(btn.getSeconds());//秒
        System.out.println(btn.toMillis());//毫秒

        System.out.println("----------------------------------------");

        LocalTime lt1 = LocalTime.now();
        try {
            Thread.sleep(1000);
        } catch (InterruptedException ignored) {}
        LocalTime lt2 = LocalTime.now();

        System.out.println(Duration.between(lt1, lt2).toMillis());

        System.out.println("----------------------------------------");

        LocalDate of = LocalDate.of(2020, 8, 20);
        LocalDate now = LocalDate.now();
        Period period = Period.between(of, now);
        System.out.println(period.getYears());
        System.out.println(period.getMonths());
        System.out.println(period.getDays());

    }

    //自定义时间格式化
    @Test
    public void test4() {
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime ldt = LocalDateTime.now();
        System.out.println(ldt);
        System.out.println(dtf.format(ldt));//2019-09-26 23:11:53

        System.out.println("-------------------------------------------");
        //LocalDateTime总是表示本地日期和时间,要表示一个带时区的日期和时间,我们就需要            
        ZonedDateTime
        ZonedDateTime zdt = ZonedDateTime.now();
        System.out.println(zdt);
        System.out.println(dtf.format(zdt));
    }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值