java中将unix长整型long时间戳转换为标准化时间字符串iso-8601的方法记录

   /*
    * @Author juzheng
    * @Description 测试新的和旧的对于unix长整型时间戳的转换(基于java自带方法)
    * @Date 10:12 AM 2019/7/29
    * @Param []
    * @return void
    * @mail [email protected]
    */
    @Test
    public void testUnixTime(){
        //(旧)unix转换iso8601基于jdk1.7     1562102394--->>>2019/7/3 5:19:54即 2019-07-03T05:19:54+08:00
        Long timestamp = Long.valueOf(1562102394)*1000L; //*1000为了转换为毫秒
        Date time = new Date(Long.valueOf(timestamp));
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
        String unix_time=sdf.format(time);
        System.out.println(unix_time);//结果:2019-07-03T05:19:54+08:00


        // (新)(基于jdk1.8)
        Instant fromUnixTimestamp = Instant.ofEpochSecond(1562102394);
        //以下要申明时区,否则默认为UTC0时区
        String unix_time2=fromUnixTimestamp.atZone(ZoneId.of("+08:00")).toString();
        System.out.println(unix_time2);//结果:2019-07-03T05:19:54+08:00
    }

两种方法,一种基于jdk1.7之前的传统方法,一种是我基于jdk1.8的java.time新的时间包写的

你可能感兴趣的:(java)