JDK1.8 新增的日期时间API

 JDK1.8之前常用的时间日期类  Date   SimpleDateFormat()   Calendar

JDK1.8之后提供了一套全新的时间日期API 这套全新的API在 java.time  包下

       LocalDate //年月日
       LocalTime //时分秒
       LocalDateTime//年月日时分秒

        //这三个日期API里面采用静态方法 now() 获取当前的日期时间

  #获取对象的方法
//方式1通过静态方法  now();
   LocalDate localDate =LocalDate.now();
        System.out.println(localDate);//2019-05-30
   LocalTime now = LocalTime.now();
        System.out.println(now);//10:33:37.106
   LocalDateTime now1 = LocalDateTime.now();
        System.out.println(now1);//2019-05-30T10:33:37.106
-----------------------------------------------------------------------------------------
//方式2通过静态方法of()方法参数可以指定年月日时分秒
LocalDateTime of = LocalDateTime.of(2019, 5, 29, 10, 37, 33);
        System.out.println(of);//2019-05-29T10:37:33
		

常用方法
    1.与获取相关的方法:get系类的方法

  LocalDateTime now = LocalDateTime.now();
         now.getYear();获取年
		 now.getMinute();获取分钟
		 now.getHour();获取小时
		 now.getDayOfMonth 获得月份天数(1-31)
		 now.getDayOfYear 获得年份天数(1-366)
		 now.getDayOfWeek 获得星期几(返回一个 DayOfWeek枚举值)
		 now.getMonth 获得月份, 返回一个 Month 枚举值
		 now.getMonthValue 获得月份(1-12)
		 now.getYear 获得年份

2.格式化日期日期字符串的方法 format()

LocalDateTime now = LocalDateTime.now();
        String format = now.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒"));
        System.out.println(format);//2019年05月30日 10时49分10秒

3.转换的方法 toLocalDate();toLocalTime();

   //与转换相关的方法
        LocalDateTime now = LocalDateTime.now();
        //转换成 年月日的这个日期
        LocalDate localDate = now.toLocalDate();
        //转换成 时分秒的这个日期
        LocalTime localTime = now.toLocalTime();
          System.out.println(localDate);//2019-05-30
          System.out.println(localTime);//10:51:36.859

    4.判断的方法

  //isAfter() 判断一个日期是否在指定日期之后
  //isBefore() 判断一个日期是否在指定日期之前
  //isLeapYear() 判断是否是闰年注意是LocalDate类中的方法
        LocalDate now = LocalDate.now();
        LocalDate of = LocalDate.of(2010, 2, 19);
        boolean after = of.isAfter(now);
        boolean after1 = now.isAfter(of);
        System.out.println(after);
        System.out.println(after1);

        boolean before = of.isBefore(now);
        System.out.println(before);
        boolean before1 = now.isBefore(of);
        System.out.println(before1);

        boolean leapYear = of.isLeapYear();
        System.out.println(leapYear);
        boolean leapYear1 = now.isLeapYear();
        System.out.println(leapYear1);

5.解析的静态方法parse("2007-12-03T10:15:30");
        paser() 将一个日期字符串解析成日期对象,注意字符串日期的写法的格式要正确,否则解析失败

 //例如:
        //LocalDateTime parse = LocalDateTime.parse("2007-12-03T10:15:30");
        String str="2007-12-03";
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate parse = LocalDate.parse(str, dateTimeFormatter);
        System.out.println(parse);
        System.out.println("------------------------");
        String str2 = "2007-12-03 15:20:30";
        LocalDateTime parse1 = LocalDateTime.parse(str2, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        System.out.println(parse1);
        System.out.println("--------------------");
        String str3="15:20:30";
        LocalTime parse2 = LocalTime.parse(str3, DateTimeFormatter.ofPattern("HH:mm:ss"));
        System.out.println(parse2);

    注意细节:如果用LocalDateTime 想按照我们的自定义的格式去解析,注意
        日期字符串的 年月日时分秒要写全,不然就报错
         

   LocalDateTime ldt4 = LocalDateTime.now();
            DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            LocalDateTime.parse("2018-01-21 20:30:36", formatter2);

6.添加年月日时分秒的方法 plus系列的方法 都会返回一个新的LocalDateTime的对象

 //年月日,时分秒 加上对应的时间量
        LocalDateTime now = LocalDateTime.now();
        System.out.println(now);
        //注意添加完相应的时间量后,返回的是一个新对象
        LocalDateTime localDateTime = now.plusYears(1);
        System.out.println(localDateTime);
        LocalDateTime localDateTime1 = now.plusDays(2);
        System.out.println(localDateTime1);

7.减去年月日时分秒的方法 minus 系列的方法 注意都会返回一个新的LocalDateTime的对象

 //给年月日时分秒减去相应的时间量
        LocalDateTime now = LocalDateTime.now();
        //注意:减去相应的时间量后,返回的是一个新的日期对象
        LocalDateTime localDateTime = now.minusYears(2);
        System.out.println(localDateTime);
        注意:减去相应的时间量后,返回的是一个新的日期对象
        LocalDateTime localDateTime1 = now.minusMonths(3);
        System.out.println(localDateTime1);

8.指定年月日时分秒的方法 with系列的方法 注意都会返回一个新的LocalDateTime的对象

 LocalDate of = LocalDate.of(2011, 10, 10);
        LocalDate now = LocalDate.now();
        System.out.println(now);
        //指定完对应的日期后,返回的是一个新的日期对象
        LocalDate localDate = now.withYear(2020);
        //指定完对应的日期后,返回的是一个新的日期对象
        LocalDate localDate1 = now.withMonth(12);
        System.out.println(localDate);
        System.out.println(localDate1);

        System.out.println("---------------------------------");

        LocalDate localDate2 = now.withDayOfMonth(20);
        System.out.println(localDate2);
        TemporalAdjuster temporalAdjuster = TemporalAdjusters.firstDayOfNextMonth();
        temporalAdjuster = TemporalAdjusters.lastDayOfMonth();
        temporalAdjuster = TemporalAdjusters.nextOrSame(DayOfWeek.TUESDAY);
        temporalAdjuster = TemporalAdjusters.previous(DayOfWeek.MONDAY);
        LocalDate with = now.with(temporalAdjuster);
        LocalDate with1 = now.with(ChronoField.DAY_OF_YEAR, 100);
        System.out.println(with1);
        System.out.println(with);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JDK 1.8是Java开发工具包(Java Development Kit)的一个版本,是Java编程语言的重要工具之一。它包含了编译器、运行时环境、调试器和其他一些用于开发Java应用程序的工具。 JDK 1.8中引入了许多特性和改进,其中最重要的是Lambda表达式和函数式接口。Lambda表达式是一种简化匿名内部类的方式,它使得编写代码更简洁、易读。函数式接口则是一种只有一个抽象方法的接口,它能够被Lambda表达式直接实现,提供了更强大的代码组织和处理能力。 除了Lambda表达式和函数式接口,JDK 1.8还引入了一些其他的特性,如Streams API(流式API)、日期时间API、默认方法(default methods)等。Streams API提供了一种的集合处理方式,使得对集合中的元素进行过滤、映射、排序等操作更加便捷。日期时间API则提供了对日期时间的更加灵活和易用的操作方法。默认方法允许在接口中定义具体的实现,为现有的接口添加的方法时更加方便。 JDK 1.8在性能方面也进行了优化,包括对编译器、垃圾回收器、类加载器等进行了改进和优化,提升了Java应用程序的性能和效率。 总之,JDK 1.8是一次重要的版本升级,引入了许多特性和改进,使得Java编程更加灵活、高效和易用。这些特性使得Java开发人员能够更轻松地编写出高质量、可维护的代码,提升了开发效率和用户体验。 ### 回答2: JDK1.8Java Development Kit(Java开发工具包)的一种版本,csdn是一家广受欢迎的中文技术社区和博客平台。 JDK1.8Java平台的一个重要更版本。它包含了许多的特性和改进,为Java开发人员提供了更好的开发体验和更强大的功能。JDK1.8引入了Lambda表达式、函数式接口、Stream API等重要的语言特性和功能,使得Java语言更加现代化和灵活。 Lambda表达式是JDK1.8引入的一个重要特性,它简化了在函数式编程中使用的匿名内部类的写法,使得代码更加简洁易读。Lambda表达式的引入大大增加了Java语言的表达力,使得开发人员可以更方便地编写函数式风格的代码。 函数式接口是另一个JDK1.8的重要特性,它是只包含一个抽象方法的接口。函数式接口可以用lambda表达式或方法引用来实现,使得开发人员可以更方便地使用函数式编程的思想来解决问题。 Stream APIJDK1.8新增的另一个重要特性,它提供了一种更高效、更简洁的方式来处理集合数据。Stream API利用了函数式编程的特性,可以方便地进行数据过滤、转换、聚合等操作,大大简化了对集合数据的处理代码。 csdn是一个面向中国IT技术人员的社区平台,提供了丰富的技术文章、博客、论坛等资源。在csdn上,开发者可以分享自己的技术经验和思考,学习他人的经验,解决问题。通过csdn,开发者可以与同行交流,不断提升自己的技术水平。 综上所述,JDK1.8Java开发工具包的一个版本,引入了许多重要的特性和改进,使得Java开发更加现代化和灵活。而csdn则是为中国IT技术人员提供了一个学习和交流的平台,使得开发者可以更好地掌握和应用JDK1.8的特性。 ### 回答3: JDK 1.8是Java Development Kit的缩写,是Java开发平台的一个重要版本。CSND是一个国内知名的技术社区,是中国最大的IT社区之一。JDK 1.8和CSND有什么关系呢? 首先,JDK 1.8是Java的一个重要版本,它包含了许多的特性和功能,使得开发者能够更加方便地编写高效的Java代码。例如,它引入了Lambda表达式和函数式接口,使得代码更加简洁和易于理解。另外,JDK 1.8还引入了Stream API,提供了一种更强大和易于使用的方法来处理集合数据。这些特性和功能对于Java开发者来说非常重要,因为它们可以提高开发效率和代码质量。 而CSND作为一个知名的技术社区,提供了一个平台,供开发者学习和分享技术知识。在CSND上,你可以找到大量关于JDK 1.8的文章、教程和讨论。这些内容可以帮助开发者更好地理解和应用JDK 1.8的特性和功能。此外,CSND也提供了一个交流平台,开发者可以在这里互相交流经验、解决问题并相互学习。在CSND上,你可以找到许多与JDK 1.8相关的问答、指导和分享,帮助你更深入地学习和应用JDK 1.8。 总结而言,JDK 1.8是Java开发平台的一个重要版本,它包含了许多特性和功能。而CSND作为一个知名的技术社区,提供了丰富的资源和交流平台,使得开发者可以更好地学习和应用JDK 1.8。通过在CSND上查阅和参与讨论,开发者可以深入了解JDK 1.8的特性,并应用于实际开发中,提高自己的技术水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值