Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API,Java处理日期、日历和时间的不足之处:将 java.util.Date 设定为可变类型,以及 SimpleDateFormat 的非线程安全使其应用非常受限。然后就在 java8 上面增加新的特性。全新API的众多好处之一就是,明确了日期时间概念,例如:瞬时(instant)、长短(duration)、日期、时间、时区和周期。同时继承了Joda 库按人类语言和计算机各自解析的时间处理方式。不同于老版本java日期,新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且线程安全。

新加入的类:

Instant:瞬时实例。

LocalDate:本地日期,不包含具体时间 例如:2014-01-14 可以用来记录生日、纪念日、加盟日等。

LocalTime:本地时间,不包含日期。

LocalDateTime:组合了日期和时间,但不包含时差和时区信息。

ZonedDateTime:最完整的日期时间,包含时区和相对UTC或格林威治的时差

下来写示例来汇总下java8日期的API

java 8 中的 LocalDate 用于表示当天日期。和java.util.Date不同,它只有日期,不包含时间。当项目字段需要表示日期时就用这个类。

java两个日期间隔天数_java日期_java 格式化日期 cst

java日期_java 格式化日期 cst_java两个日期间隔天数

我们通过静态工厂方法now()非常容易地创建了当天日期,你还可以调用另一个有用的工厂方法LocalDate.of()创建任意日期, 该方法需要传入年、月、日做参数,返回对应的LocalDate实例。这个方法的好处是没再犯老API的设计错误,比如年度起始于1900,月份是从0开 始等等。

java日期_java两个日期间隔天数_java 格式化日期 cst

java日期_java 格式化日期 cst_java两个日期间隔天数

只要当天的日期和生日匹配,无论是哪一年都会打印出生日信息。

java 格式化日期 cst_java日期_java两个日期间隔天数

可以看到当前时间就只包含时间信息java日期,没有日期,通过增加小时、分、秒来计算将来的时间很常见。Java 8除了不变类型和线程安全的好处之外,还提供了更好的plusHours()方法替换add(),并且是兼容的。

java日期_java 格式化日期 cst_java两个日期间隔天数

java两个日期间隔天数_java日期_java 格式化日期 cst

在Java 8中,LocalDate类有两类方法isBefore()和isAfter()用于比较日期。调用isBefore()方法时,如果给定日期小于当前日期则返回true。

java两个日期间隔天数_java日期_java 格式化日期 cst

Instant类有一个静态工厂方法now()会返回当前的时间戳,如下所示:

java 格式化日期 cst_java日期_java两个日期间隔天数

java两个日期间隔天数_java 格式化日期 cst_java日期

限时特惠:本站每日持续更新海量展厅资源,一年会员只需29.9元,全站资源免费下载
站长微信:zhanting688