Day028 JDK8中新日期和时间API
Posted 南方风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day028 JDK8中新日期和时间API相关的知识,希望对你有一定的参考价值。
JDK8中新日期时间API
新时间日期API
- java.time – 包含值对象的基础包
- java.time.chrono – 提供对不同的日历系统的访问
- java.time.format – 格式化和解析时间和日期
- java.time.temporal – 包括底层框架和扩展特性
- java.time.zone – 包含时区支持的类
说明:大多数开发者只会用到基础包和format包,也可能会用到temporal包。因此,尽 管有68个新的公开类型,大多数开发者,大概将只会用到其中的三分之一。
LocalDate、LocalTime、LocalDateTime
LocalDate、LocalTime、LocalDateTime 类是其中较重要的几个类,它们的实例 是不可变的对象,分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。 它们提供了简单的本地日期或时间,并不包含当前的时间信息,也不包含与时区 相关的信息。
- LocalDate代表ios格式(yyyy-MM-dd)的日期,可以存储 生日、纪念日等日期。
- LocalTime表示一个时间,而不是日期。
- LocalDateTime是用来表示日期和时间的,这是一个最常用的类之一。
注:ISO-8601日历系统是国际标准化组织制定的现代公民的日期和时间的表示 法,也就是公历。
方法
- 实例化:now()和of()
-
now() //获取当前时间
//now() LocalDate date = LocalDate.now(); LocalTime time = LocalTime.now(); LocalDateTime dateTime=LocalDateTime.now(); System.out.println(date); System.out.println(time); System.out.println(dateTime);
输出结果
2021-05-28 20:10:34.339 2021-05-28T20:10:34.340
-
of() //设置指定的年、月、日、时、分、秒
//of() LocalDateTime localDateTime = LocalDateTime.of(2020, 10, 1, 14, 58, 44); System.out.println(localDateTime);
输出结果
2020-10-01T14:58:44
- getXxx() :get相关的方法
LocalDateTime dateTime=LocalDateTime.now();
//getXxx
System.out.println(dateTime.getDayOfMonth());
System.out.println(dateTime.getDayOfWeek());
System.out.println(dateTime.getMonth());
System.out.println(dateTime.getMonthValue());
System.out.println(dateTime.getMinute());
输出结果:
28
FRIDAY
MAY
5
26
- WithXxxxx():设置值(不可变性-->有返回值)
LocalDateTime dateTime=LocalDateTime.now();
//withXxxxx()
LocalDateTime dateTime1 = dateTime.withDayOfMonth(10);
System.out.println(dateTime);
System.out.println(dateTime1);
LocalDateTime dateTime2 = dateTime.withHour(7);
System.out.println(dateTime);
System.out.println(dateTime2);
输出结果
2021-05-28T20:39:33.446
2021-05-10T20:39:33.446
2021-05-28T20:39:33.446
2021-05-28T07:39:33.446
- plusXxxx()/minusXxxx() : 添加/减少(不可变性-->有返回值)
LocalDateTime dateTime=LocalDateTime.now(); //plusXxx()LocalDateTime dateTime3 = dateTime.plusMonths(3);System.out.println(dateTime);System.out.println(dateTime3);//minusXxx()LocalDateTime dateTime4 = dateTime.minusDays(6);System.out.println(dateTime);System.out.println(dateTime4);
输出结果
2021-05-28T20:51:05.2312021-08-28T20:51:05.2312021-05-28T20:51:05.2312021-05-22T20:51:05.231
以上是关于Day028 JDK8中新日期和时间API的主要内容,如果未能解决你的问题,请参考以下文章
JDK8中新的日期时间工具类真的很好用,还不清楚的快进来看看吧,建议收藏