jdk8 Instant 、LocalDateTime、字符串时间互转

1.创建时间:
		//ZonedDateTime 包含时区、LocalDateTime 不包含时区信息默认本地时区
  		LocalDateTime ldt = LocalDateTime.now();//2020-04-09T14:32:29.681
        ZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("Asia/Shanghai"));//2020-04-09T14:32:29.682+08:00[Asia/Shanghai]
        OffsetDateTime offsetDateTime = Instant.now().atOffset(ZoneOffset.ofHours(8));//2020-04-09T14:32:29.682+08:00	
        
2.获取时间戳:
		 Instant instan1 = Instant.now();
         Instant instan2= ldt.toInstant(ZoneOffset.ofHours(8));//LocalDateTime 转时间戳要指定时区
         Instant instan3 = zdt.toInstant();
		 instan1.getEpochSecond();//秒
		 instan1.toEpochMilli();//毫秒
		 Instant startInstant = Instant.ofEpochMilli(Long.parseLong("时间戳字符串"));

3.格式化时间:       
        DateTimeFormatter dtf= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
       
        String operatorTime = ldt.format(dtf);
         //ZonedDateTime 转换为时间戳-转换为OffsetDateTime-格式化
  		String operatorTime2 = zdt.toInstant().atOffset(ZoneOffset.ofHours(8)).format(dtf);
  
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
        LocalDateTime localDate = LocalDateTime.parse("2019-11-27T18:11:15.911+08:00", dateTimeFormatter);//+08:00 无效 以标准格式格式化时间 为2019-11-27T18:11:15.911
        System.out.println("========"+localDate);
        
		DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
		//按yyyy-MM-dd HH:mm:ss格式格式化时间,格式化为 带时区的时间
		OffsetDateTime parse = LocalDateTime.parse("2019-11-27 18:11:15", dateTimeFormatter2)
		    .toInstant(ZoneOffset.ofHours(8)).atOffset(ZoneOffset.ofHours(8));//2019-11-27T18:11:15+08:00
        Instant instan = localDate.toInstant(ZoneOffset.ofHours(8));//LocalDateTime 转时间戳要指定时区
        System.out.println(instan);// 2019-11-27T10:11:15.911Z
        
        java.util.Date date = Date.from(instan);//转换为旧时间
        System.out.println(date);//Wed Nov 27 18:11:15 CST 2019
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String result = sdf.format(date);//2019-11-27 18:11:15
  
  		String time = "1994-11-24 07:11:24";   
        Date date = sdf.parse(time);
        
        //date tostring 之后转换方法
  		SimpleDateFormat frm = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		try {
            parse = frm.parse("Fri Apr 24 16:25:33 CST 2020");
        } catch (ParseException e) {
            e.printStackTrace();
        }
         String result = sdf.format(parse);//2019-11-27 18:11:15





版权声明:本文为XiXavier原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。