在java.util.Date类与LocalDate、LocalDateTime类之间转换中 均可以通过Instant作为中间类完成转换,Instant的使用还是比较方便的,下面介绍Instant的使用。
一、创建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
热门文章
- 「2月13日」最高速度20.8M/S,2025年WinXray每天更新免费节点订阅链接
- js下拉列表二级联动
- 「2月9日」最高速度22.5M/S,2025年WinXray每天更新免费节点订阅链接
- 「1月21日」最高速度19.2M/S,2025年WinXray每天更新免费节点订阅链接
- 如何将CONCAT()函数应用于MySQL表的列?
- 学美容的正规学校学费(学美容的学费大概是多少钱呀)
- 宠物粮食品牌都有什么名字呢 宠物粮食品牌都有什么名字呢图片
- 宠物医院收费价目表昆明(昆明宠物医院24小时营业)
- 兽用疫苗如何保存时间长一点(兽用疫苗保存的适宜温度)
- 「2月15日」最高速度22.5M/S,2025年WinXray每天更新免费节点订阅链接