JAVA 8 主要新特性 ----------------(七)新时间日期 API -----LocalDate

时间:2023-03-09 04:18:19
JAVA 8 主要新特性 ----------------(七)新时间日期 API -----LocalDate

一、改版原因

1、老板的Date和Calander存在问题,日期操作名称混乱,有的在text下,有的在util下,包名混乱
         2、Simple包混乱,致命错误线程不安全。
         3、1.8规范的放在java.time目录下
二、1.8日期使用简介

1、使用 LocalDate、LocalTime、LocalDateTime

LocalDate、LocalTime、LocalDateTime 类的实 例是不可变的对象,分别表示使用 ISO-8601日 历系统的日期、时间、日期和时间。它们提供了简单的日期或时间,并不包含当前的时间信息。也不包含与时区相关的信息。

2、LocalDateJDK文档介绍

JAVA 8 主要新特性 ----------------(七)新时间日期 API -----LocalDate

文本加代码

JAVA 8 主要新特性 ----------------(七)新时间日期 API -----LocalDate

  LocalDate localDateMin = LocalDate.MIN;
System.out.println("localDateMin年的最小取值范围 :\n" + localDateMin); LocalDate localDateText = LocalDate.parse("2018-12-05");
System.out.println("localDateText输出字符串日期 :\n" + localDateText);

JAVA 8 主要新特性 ----------------(七)新时间日期 API -----LocalDate

 LocalDate localDate = LocalDate.now();

         System.out.println("localDate获取当前yyyy-mm-dd :\n" + localDate);

         LocalDate localDateSystem = LocalDate.now(ZoneId.systemDefault());

         System.out.println("当前系统默认时间:\n" + localDateSystem);

         LocalDate localDateChinese = LocalDate.now(ZoneId.of("GMT+8", new HashMap<>(64)));

         System.out.println("获取某个时区的国家当前日期:\n" + localDateChinese);

JAVA 8 主要新特性 ----------------(七)新时间日期 API -----LocalDate

 Clock clock = Clock.systemDefaultZone();
LocalDate localDateClock = LocalDate.now(clock);
System.out.println("localDateClock使用默认时区转换为日期和时间yyyy-mm-dd:\n" + localDateClock);

now 的方法

下周一的日期
 LocalDate nextMonday = LocalDate.now().with(TemporalAdjusters.next(DayOfWeek.MONDAY));

         System.out.println("nextMonday下周一的日期 :\n" + nextMonday);
获取当前是年月情况
 LocalDate localDateGet = LocalDate.now();

         System.out.println("localDateGet获取当前是一年的第几天 :\n" + localDateGet.getDayOfYear());
System.out.println("localDateGet获取当前是本月的第几天 :\n" + localDateGet.getDayOfMonth());
System.out.println("localDateGet获取当前星期几 :\n" + localDateGet.getDayOfWeek());
System.out.println("localDateGet获取当前年 :\n" + localDateGet.getYear());
System.out.println("localDateGet获取当前月 :\n" + localDateGet.getMonth());

JAVA 8 主要新特性 ----------------(七)新时间日期 API -----LocalDate

 LocalDate localDateOf = LocalDate.of(2018, 12, 30);

         System.out.println("localDateOf获取设置的yyyy-mm-dd:\n" + localDateOf);

         LocalDate localDateOfYearDay = LocalDate.ofYearDay(2018, 352);

         System.out.println("localDateOfYearDay获取一年的第352天是哪月哪日的yyyy-mm-dd:\n" + localDateOfYearDay);

JAVA 8 主要新特性 ----------------(七)新时间日期 API -----LocalDate

 LocalDate dateFromBase = LocalDate.ofEpochDay(365);
System.out.println("1970年的365天后是:\n" + dateFromBase);

JAVA 8 主要新特性 ----------------(七)新时间日期 API -----LocalDate

 LocalDate localDateFormatNow = LocalDate.from(ZonedDateTime.now());
System.out.println("当前日期是:\n" + localDateFormatNow);

JAVA 8 主要新特性 ----------------(七)新时间日期 API -----LocalDate

 LocalDate localDateText = LocalDate.parse("2018-12-05");
System.out.println("localDateText输出字符串日期 :\n" + localDateText); LocalDate localDateFormat = LocalDate.parse("20181223", DateTimeFormatter.BASIC_ISO_DATE);
System.out.println("localDateFormat格式化日期 :\n" + localDateFormat);

git地址:点击这里

目前总结这些,以后使用到还会补充,希望对于大家有帮助,如果有疑问请留下您的问题,大家一起共同讨论