Instant 瞬时

Instant:时间线上的一个瞬时点。( 可能被用来记录应用程序中的事件时间戳 )

  • 在处理时间和日期的时候,我们通常会想到,面向人类的( 年、月、日、时、分、秒)这只是时间的一个模型。
  • 第二种,通用模型时面向机器的,或者说是连续的。此模型种,时间线中的一个点表示为一个很大的输,这样有利于计算机处理。在UNIX中,这个数从1970年开始,以为单位;同样,在Java中,也是从1970年开始,但以毫秒为单位;
  • java.time包通过值类型 Instant 提供机器视图,不提供处理人类意义上的时间单位。Instant表示时间线上的一点,而不需要任何上下文信息,例如,时区。概念上讲,它只是简单的表示自1970年1月1日0时0分0秒(UTC)开始的秒数。因为 java.time 包是基于纳秒计算的。

 

 /*
    Instant
        类似于Date类
     */
    @Test
    public void test2(){
        //now():本初子午线对应的标准时间
        Instant instant = Instant.now();
        System.out.println(instant);//2021-09-22T01:35:26.908Z

        //添加偏移量
        OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));
        System.out.println(offsetDateTime);//2021-09-22T09:43:48.653+08:00

        //toEpochMilli():获取自1970年1月1日0时0分0秒(UTC)开始的秒数 --getTime()
        long milli = instant.toEpochMilli();
        System.out.println(milli);//1632275028653

        //ofEpochMilli():通过给定的毫秒数,获取Instant实例 --Date(long millis)
        Instant instant1 = Instant.ofEpochMilli(1632275028653L);
        System.out.println(instant1);//2021-09-22T01:43:48.653Z
    }

 

posted @ 2021-09-22 09:49  翼`  阅读(126)  评论(0编辑  收藏  举报