java8 新日期和时间demo

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8 新日期和时间demo相关的知识,希望对你有一定的参考价值。

技术分享
 //LocalDateTime
    private static void test1() {
        //初始化日期和时间
        LocalDateTime ldt1=LocalDateTime.of(2016,10,04,10,40,50);
        System.out.println(ldt1);//2016-10-04T10:40:50

        //获取当前日期和时间
        LocalDateTime ldt2=LocalDateTime.now();
        System.out.println(ldt2);//2017-11-04T11:02:57.721

        //增加年
        LocalDateTime ldt3=ldt2.plusYears(2);//2019-11-04T11:02:57.721
        System.out.println(ldt3);
        //减少分钟
        LocalDateTime ldt4=ldt2.minusMinutes(30);//2017-11-04T10:32:57.721
        System.out.println(ldt4);

        //获取年月日时分秒
        System.out.println("年:"+ldt2.getYear());//年:2017
        System.out.println("月:"+ldt2.getMonthValue());//月:11
        System.out.println("日:"+ldt2.getDayOfMonth());//日:4
        System.out.println("时:"+ldt2.getHour());//时:11
        System.out.println("分:"+ldt2.getMinute());//分:2
        System.out.println("秒:"+ldt2.getSecond());//秒:57
    }
LocalDateTime使用
技术分享
//Instant:时间戳(以Unix元年:1970年1月1日0点0分0秒 到指定时间的毫秒值
    private static void test2(){

        Instant ins1=Instant.now();//默认获取UTC时区
        System.out.println(ins1);//2017-11-04T03:23:45.442Z

        //获取东八区时间(北京时间)
        OffsetDateTime odt= ins1.atOffset(ZoneOffset.ofHours(8));//2017-11-04T11:23:45.442+08:00
        System.out.println(odt);
        //获取毫秒值
        System.out.println(ins1.toEpochMilli());//1509765825442
        //获取秒值
        System.out.println(odt.toEpochSecond());//1509765825

        Instant ins2=Instant.ofEpochMilli(60);//1970-01-01T00:00:00.060Z
        System.out.println(ins2);
    }
Instant:时间戳(以Unix元年:1970年1月1日0点0分0秒 到指定时间的毫秒值
技术分享
//计算时间间隔
    private static void test3(){
        //第一种方式
        Instant  ins1=Instant.now();
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Instant ins2=Instant.now();
        Duration duration=Duration.between(ins1,ins2);
        System.out.println("间隔的毫秒:"+duration.toMillis());//间隔的毫秒:1031
        System.out.println("间隔的天:"+duration.toDays());//间隔的天:0
        System.out.println("间隔的小时:"+duration.toHours());//间隔的小时:0
        System.out.println("间隔的分钟:"+duration.toMinutes());//间隔的分钟:0
        System.out.println("间隔的纳秒:"+duration.toNanos());//间隔的纳秒:1031000000

        //第二种方式
        LocalTime lt1=LocalTime.now();
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        LocalTime lt2=LocalTime.now();

        System.out.print(Duration.between(lt1,lt2).toMillis());//2000毫秒
    }
计算时间间隔
技术分享
   private static void test4(){
        LocalDate ld1=LocalDate.of(2015,1,1);
        LocalDate ld2=LocalDate.now();
        System.out.println(ld2);//2017-11-04

        Period period=Period.between(ld1,ld2);
        System.out.println(period);//P2Y10M3D

        System.out.println(period.getYears());//2
        System.out.println(period.getMonths());//10
        System.out.println(period.getDays());//3
    }
计算日期间隔

 

以上是关于java8 新日期和时间demo的主要内容,如果未能解决你的问题,请参考以下文章

java8新特性学习六(新时间日期API)

JAVA8新特性-----新时间与日期API

java8新特性之 日期和时间

java8新特性——新日期和时间API

Java8为什么需要引入新的日期和时间库

JAVA8新特性随笔