java8 Instant时间转换 java8 Instant 时间及转换操作

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

java8 Instant时间转换 java8 Instant 时间及转换操作

stay hungry,stay you   2021-03-16 我要评论
想了解java8 Instant 时间及转换操作的相关内容吗,stay hungry,stay you在本文为您仔细讲解java8 Instant时间转换的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java8,Instant,时间转换,下面大家一起来学习吧。

一、获取当前时区时间:

Instant.now().atZone(ZoneId.systemDefault())

二、创建Instant实例

Instant now = Instant.now();

System.out.println(“now:”+now);

控制台输出:

now:2018-07-09T08:59:08.853Z

注意:通过这种方式获取的时间戳与北京时间相差8个时区,需要修正为北京时间,通过查看源代码发现Instant.now()使用等是UTC时间Clock.systemUTC().instant()。LocalDate、LocalDateTime 的now()方法使用的是系统默认时区 不存在Instant.now()的时间问题。

###解决方法

增加8个小时

Instant now = Instant.now().plusMillis(TimeUnit.HOURS.toMillis(8));

System.out.println(“now:”+now);

控制台输出:

now:2018-07-09T16:58:48.188Z

三、Instant获取long类型的10位秒数、13位毫秒数

Instant now = Instant.now().plusMillis(TimeUnit.HOURS.toMillis(8));
System.out.println(“秒数:”+now.getEpochSecond());
System.out.println(“毫秒数:”+now.toEpochMilli());

控制台输出:

秒数:1539170157

毫秒数:1539170157886

LocalDateTime输出毫秒数的方式,比Instant多一步转换

LocalDateTime localDateTime = LocalDateTime.now();
//LocalDateTime转Instant
Instant localDateTime2Instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
System.out.println(“LocalDateTime 毫秒数:”+localDateTime2Instant.toEpochMilli());

控制台输出:

LocalDateTime 毫秒数:1539141733010

补充知识:jdk8中奖Date转换为String格式的方法

我就废话不多说了,大家还是直接看代码吧~

public static String getLocalDateStr(Date date,String formatter) {
	   
     DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(formatter);     
     Instant instant = date.toInstant();
     ZoneId zoneId = ZoneId.systemDefault();
     LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zoneId);   
     String dateStr = dateTimeFormatter.format(localDateTime);   	   
	   return dateStr;
   }

以上这篇java8 Instant 时间及转换操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们