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
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值