您的位置 首页 java

带你玩转Java8的Date API

怎么玩?

我们用一个一个生动形象的例子来一起把Java 8带来的Date API给玩透透,以后大家再也不会因为Date而发愁了。

带你玩转Java8的Date API

最简单的玩法

想必大家都已经对这个玩法了如指掌了。我们就从最简单的开始说起吧。Date对象的API介绍是:Date类表示的是一个特定瞬时时间,精度是毫秒级别。

当我们用:System.out.println(date)的时候会打印出这样的时间:

Fri Dec 22 12:10:50 CST 2017 

这是一个带有时区的标准时间的格式。官方文档给的格式说明是:dow mon dd hh:mm:ss zzz yyyy。其中的zzz表示的就是时区。如果你想知道自己现在的时区的信息。可以直接使用:TimeZone.getDefault()。我的电脑打印出来的信息是:

ZoneInfo[id=”Asia/Shanghai”,offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]

获取当前时间

大家很熟悉的玩法肯定是:date.getHour(); 但是大家用Java8的时候会发现getHour这个方法已经被官方废弃了。官方的说法是:

Deprecated. As of JDK version 1.1, replaced by Calendar.get(Calendar.HOUR_OF_DAY). 

所以我们现在的玩法应该是:Calendar calendar = Calendar. getInstance (); calendar.get(Calendar.HOUR_OF_DAY);

两个的输出结果肯定是一致的,以后建议大家都用calendar来玩吧。

既然有了Calendar类。通过API我们发现它可以玩的东西就太多了。获取当前时间,获取当前日期,设置一个时间,设置一个日期等等等。

所以这应该就是一个进步吧。

Java 8 时间新特性

time包里面有下面的类:有了这些类我们玩起来就开心快乐很多了。

Instant:时间戳

Duration:持续时间,时间差

LocalDate:只包含日期,比如:2016-10-20

LocalTime:只包含时间,比如:23:12:10

LocalDateTime:包含日期和时间,比如:2016-10-20 23:14:21

Period:时间段

ZoneOffset:时区 偏移量 ,比如:+8:00

ZonedDateTime:带时区的时间

Clock:时钟。

日期的比较

LocalDate有before和 after 方法提供日期比较的功能。

LocalDate today = LocalDate.now();

LocalDate compareDate = LocalDate.of(2017, 12, 20);

System.out.println(today.isAfter(compareDate)); //true

文章来源:智云一二三科技

文章标题:带你玩转Java8的Date API

文章地址:https://www.zhihuclub.com/198311.shtml

关于作者: 智云科技

热门文章

网站地图