Java8新增的日期、时间包

为了弥补传统Java对日期、时间处理的不足,Java8提供了一套全新的日期时间库。Java8专门新增了一个java.time包,该包下包含了如下常用类。

1. Clock:该类用于获取指定时区的当前日期、时间。该类可以取代System类的currentTimeMillis()方法,该类提供了大量的方法获取当前的日期和时间,如下图:

Java8新增的日期、时间包

 程序代码示例如下:

//获取当前Clock
Clock clock = Clock.systemUTC();
//获取clock对应的毫秒数
//等于System.currentTimeMillis()
System.out.println(clock.millis()); System.out.println(System.currentTimeMillis());

2. Duration:该类代表持续时间

示例代码如下:

Duration d = Duration.ofSeconds(600);
System.out.println("600秒="+d.toMinutes()+"分");
System.out.println("600秒="+d.toHours()+"时");
System.out.println("600秒="+d.toDays()+"天");

3. Instant:该类代表一个具体的时刻,可以精确到纳秒。该类主要提供了以下几个方法:

1)now():获取当前时刻。

2)now(Clock clock):获取clock对应的时刻。

3)minusXxx():在当前时刻基础上减去一段时间。

4)plusXxx():在当前时刻基础上加上一段时间。

代码示例如下:

//获取当前时间
Instant instant = Instant.now(); System.out.println(instant);
//instant增加600秒
Instant ins
tant2 = instant.plusSeconds(600);

4. LocalDate:该类代表不带时区的日期,如:2019-02-24。该类主要提供了以下几个方法:

1)now():获取当前日期。

2)now(Clock clock):获取clock对应的日期。

3)minusXxx():在当前年份基础上减去几年、几月、几周或几日等。

4)plusXxx():在当前年份基础上加上几年、几月、几周或几日等。

5. LocalTime:该类代表不带时区的时间,如:10:20:09。该类主要提供了以下几个方法:

1)now():获取当前时间。

2)now(Clock clock):获取clock对应的时间。

3)minusXxx():在当前年份基础上减去几小时、几分、几秒等。

4)plusXxx():在当前年份基础上加上几小时、几分、几秒等。

6. LocalDateTime:该类代表不带时区的日期、时间,如:2019-02-24T10:20:09。该类主要提供了以下几个方法:

1)now():获取当前日期、时间。

2)now(Clock clock):获取clock对应的日期、时间。

3)minusXxx():在当前年份基础上减去几年、几月、几周或几日、几小时、几分、几秒等。

4)plusXxx():在当前年份基础上加上几年、几月、几周或几日、几小时、几分、几秒等。

7. MonthDay:该类仅代表月日,如:--09-20。该类主要提供了以下几个方法:

1)now():获取当前月日。

2)now(Clock clock):获取clock对应的月日。

8. Year:该类仅代表年,如:2019。该类主要提供了以下几个方法:

1)now():获取当前年份。

2)now(Clock clock):获取clock对应的年份。

3)minusXxx():在当前年份基础上减去几年。

4)plusXxx():在当前年份基础上加上几年。

9. YearMonth:该类仅代表年月,如:2019-02。该类主要提供了以下几个方法:

1)now():获取当前年月。

2)now(Clock clock):获取clock对应的年月。

3)minusXxx():在当前年份基础上减去几年、几月。

4)plusXxx():在当前年份基础上加上几年、几月。

10. ZonedDateTime:该类代表一个时区化的日期、时间。

11. ZonedId:该类代表一个时区。

12. DayOfWeek:该类是一个枚举类,定义了周日到周六的枚举值。

13. Month:该类是一个枚举类,定义了一月到十二月的枚举值。

欢迎关注微信公众号【Java典籍】

收看更多Java技术干货!

 ▼长按下图↓↓↓二维码识别关注

Java8新增的日期、时间包

如果觉得本文对您有用,请点击好看