Java8:新的时间库java.time

写在前面

Java8刚发布没多久,只是带着“追新”的心里。去试了试最新版的时间库.(java.time).在java.time发布之后,估计java.util.Date,java.text.SimpleDateFormat还是会用上一段时间的.不过新时间库看起来真的是下了一番功夫.

大概如下:

  • LocalDate:位于java.time,主要代表的是:yyyy-MM-dd的日期类型.
  • LocalDateTime:位于java.time,主要代表的是:yyyy-MM-dd HH:mm:ss.SSS的日期类型.
  • LocalTime:同上,只是代表的是HH:mm:ss.SSS的日期类型.
  • 新api大多数类都有plus(加),minus(减),of,parse,get等这些方法,用起来很方便.

java标志
image-2187

介绍

如果你要找api文档,可以访问:【Java8英文在线api

先看一下在java8以前是怎么格式化时间的:

[在继续阅读之前,请确认你已经安装了Java8.]

获取当前时间

然后我们看下如何在[Java8]中运行呢:

一行就搞定了(oracle在后台帮我们做了很多事情),只是在格式上有出入而已.[我始终有点不明白为啥中间要多个(T)].

获取年月日

获取时分秒

将字符串转换成LocalDateTime类型

时间偏移:计算你的生日还有多久

java.time一部分类的简介

newtimesapi
image-2188

红色圈中的说明该类可能经常用到.

PS上图中最后三行英文的翻译:

  • *:秒捕获纳秒精度.
  • **:这个类不存储这些信息,但在这些单元方法提供时间.
  • ***:当一个Period添加到一个ZoneDateTime,会发生差异.

升级到java8

假如,我要从之前的版本升级到java8,对于日期操作,新版与旧版的对比如下:

Java时间类对比
image-2189

后面的

在这上面写的很不足,因为每个人的需求不一样.

所以有更多需求还是去看java8的api文档吧.

另外推荐两篇文章:Java8的Lamb表达式

Java 8新特性:全新的Stream API

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据