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 时间及转换操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java实现Json字符串与Object对象相互转换的方式总结
这篇文章主要介绍了Java实现Json字符串与Object对象相互转换的方式,结合实例形式总结分析了java基于Json-Lib、Org.Json、Jackson、Gson、FastJson五种方式转换json类型相关操作技巧,需要的朋友可以参考下2019-03-03Spring boot事务无效报错:Transaction not enabled问题排查解决
在业务代码中经常需要保证事务的原子性,但是有的时候确实是出现事务没有生效,这篇文章主要给大家介绍了关于Spring boot事务无效报错:Transaction not enabled问题排查的相关资料,需要的朋友可以参考下2023-11-11解决Springboot2.1.x配置Activiti7单独数据源问题
这篇文章主要介绍了Springboot2.1.x配置Activiti7单独数据源问题,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2019-09-09
最新评论