Java8新增的日期、时间包
为了弥补传统Java对日期、时间处理的不足,Java8提供了一套全新的日期时间库。Java8专门新增了一个java.time包,该包下包含了如下常用类。
1. Clock:该类用于获取指定时区的当前日期、时间。该类可以取代System类的currentTimeMillis()方法,该类提供了大量的方法获取当前的日期和时间,如下图:
程序代码示例如下:
//获取当前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 instant2 = 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技术干货!
如果觉得本文对您有用,请点击好看