Java8中有哪些常用的时间api

这篇文章给大家介绍Java8中有哪些常用的时间api,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Instant

Java8中有哪些常用的时间api

publicstaticvoidmain(String[]args){
Instantnow=Instant.now();
System.out.println("Nowsecoonds:"+now.getEpochSecond());
System.out.println("Nowmilli:"+now.toEpochMilli());
}

输出当前时刻距离 1970年1月1日0时0分0秒 的秒和毫秒

Now secoonds:1541321299

Now milli :1541321299037

LocalDateTime

为了方便输出时间格式,Java8 提供了 DateTimeFormatter 类来替代之前的 SimpleDateFormat。

publicstaticvoidmain(String[]args){
DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyy-MM-ddHH:mm:ss");
LocalDateTimenow=LocalDateTime.now();
System.out.println("Now:"+now.format(formatter));
}

Now: 2018-11-04 16:53:09

LocalDateTime 提供了很多时间计算的方法,比如 加一个小时,减去一周,加上一天等等这样的计算,比之前的 Calendar 要方便许多。

publicstaticvoidmain(String[]args){
DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyy-MM-ddHH:mm:ss");
LocalDateTimenow=LocalDateTime.now();
System.out.println("Now:"+now.format(formatter));

LocalDateTimenowPlusDay=now.plusDays(1);
System.out.println("Now+1day:"+nowPlusDay.format(formatter));

LocalDateTimenowMinusHours=now.minusHours(5);
System.out.println("Now-5hours:"+nowMinusHours.format(formatter));
}

Now: 2018-11-04 17:02:53

Now + 1 day: 2018-11-05 17:02:53

Now - 5 hours: 2018-11-04 12:02:53

LocalDateTime 还有 isAfter 、 isBefore 和 isEqual 方法可以用来比较两个时间。LocalDate 的用法和 LocalDateTime 是类似的。

Instant 和 LocalDateTime 的互相转换

这俩的互相转换都要涉及到一个时区的问题。LocalDateTime 用的是系统默认时区。我们可以先把 LocalDateTime 转为 ZonedDateTime ,然后再转成 Instant。

publicstaticvoidmain(String[]args){
DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyy-MM-ddHH:mm:ss");
LocalDateTimenow=LocalDateTime.now();
System.out.println("Now:"+now.format(formatter));

InstantnowInstant=now.atZone(ZoneId.systemDefault()).toInstant();
System.out.println("Nowminiseconds:"+nowInstant.toEpochMilli());
}

Now: 2018-11-04 17:19:16

Now mini seconds: 1541323156101

publicstaticvoidmain(String[]args){
DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyy-MM-ddHH:mm:ss");
Instantnow=Instant.now();
System.out.println("Nowminiseconds:"+now.toEpochMilli());


LocalDateTimenowDateTime=LocalDateTime.ofInstant(now,ZoneId.systemDefault());
System.out.println("Zoneid:"+ZoneId.systemDefault().toString());
System.out.println("Now:"+nowDateTime.format(formatter));
}

关于Java8中有哪些常用的时间api就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

发布于 2021-06-13 23:19:07
收藏
分享
海报
0 条评论
183
上一篇:java中如何实现对象的序列化和反序列化 下一篇:微信小程序中基础入门的示例分析
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码