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日历系统是国际标准化组织制定的现代公民的日期和时间的表示 法,也就是公历。


方法

  1. 实例化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
    

  1. 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

  1. 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

  1. 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的主要内容,如果未能解决你的问题,请参考以下文章

Day029 JDK8中新日期和时间API

JDK8中新日期时间API

JDK8中新的日期时间工具类真的很好用,还不清楚的快进来看看吧,建议收藏

JDK8中新的日期时间工具类真的很好用,还不清楚的快进来看看吧,建议收藏

Java基础第二十一天总结——日期时间API

《Java8实战》读书笔记11:Java8中新的日期时间API