• localdate 时间获取与转换


    1 localDate   格式为年月日 yyyy-MM-dd

      1.1 获取当前时间

          //获取当前时间
            LocalDate now = LocalDate.now();
    

       

    1.2 string 转 LocalDate

         //string  转 localDate
            LocalDate time = LocalDate.parse("2021-10-03");
    

      

    1.3 日期所属的月份的第一天

     LocalDate time = LocalDate.parse("2021-10-03");
            //时间所属月份的第一天
            LocalDate firstDayOfMonth = time.with(TemporalAdjusters.firstDayOfMonth());
    

      

    1.4 日期所属月份最后一天

     //时间所属月份的最后一天
            LocalDate lastDayOfMonth = time.with(TemporalAdjusters.lastDayOfMonth());
    

      

    1.5 时间下个月的第一天

     //时间下个月的第一天
            LocalDate firstDayOfNextMonth = time.with(TemporalAdjusters.firstDayOfNextMonth());
    

      

    1.6 时间下一年的第一天

    //时间 下一年的第一天
            LocalDate firstDayOfNextYear = time.with(TemporalAdjusters.firstDayOfNextYear());
    

     1.7 时间所属的年份的第一天

     //时间所属年份的第一天
            LocalDate firstDayOfYear = time.with(TemporalAdjusters.firstDayOfYear());
    

      1.8 时间所属年份的最后一天

     //时间所属年份的第一天
            LocalDate lastDayOfYear = time.with(TemporalAdjusters.lastDayOfYear());
    

      

    1.9 时间所属月份的周 的日期

     //时间的第一个周末
             LocalDate dayOfWeekInMonth = time.with(TemporalAdjusters.dayOfWeekInMonth(1, DayOfWeek.SUNDAY));
            //时间的第二个周三
            LocalDate dayOfWeekInMonth1 = time.with(TemporalAdjusters.dayOfWeekInMonth(2, DayOfWeek.WEDNESDAY));
            //时间 上个月的最后一周
             LocalDate with = time.with(TemporalAdjusters.dayOfWeekInMonth(0, DayOfWeek.SUNDAY));
    

      

    1.10  时间所属月份的第一个周几

    //时间所属月份第一个 周几 示例:第一个周一日期
             LocalDate firstInMonth = time.with(TemporalAdjusters.firstInMonth(DayOfWeek.WEDNESDAY));

    1.11  时间所属月份的最后一个周几的日期

     //时间所属月份最后一个周几 日期 示例:最后一个周天日期
            LocalDate lastInMonth = time.with(TemporalAdjusters.lastInMonth(DayOfWeek.SUNDAY));

    1.12 时间的下一个周几 

    1.13 时间的上一个周几

     //时间 上一个周几 日期 示例:该时间的 上一个周日 日期
            LocalDate previousSunday = time.with(TemporalAdjusters.previous(DayOfWeek.SUNDAY));

    1.14 获取时间的 月 周  日

     // 获取时间的具体的 月 周 日
             Month month = time.getMonth();
             DayOfWeek dayOfWeek = time.getDayOfWeek();
            int dayOfMonth = time.getDayOfMonth();

    1.15 时间的 年月日 加减

     /**
             * 时间 年月日的 加减
             */
            //
            LocalDate minusDays = time.minusDays(3);
            LocalDate localDate1 = time.minusWeeks(1);
            LocalDate minusMonths = time.minusMonths(2);
            LocalDate minusYears = time.minusYears(1);
            //
            LocalDate localDate = time.plusDays(7);
            LocalDate plusWeeks = time.plusWeeks(1);
            LocalDate months = time.plusMonths(1);
            LocalDate plusYears = time.plusYears(5);

    1.16  时间的比较  之前-之后-相等-天数差

     /**
             * 时间 的 比较
             */
            LocalDate three = LocalDate.parse("2021-10-03");
            LocalDate four = LocalDate.parse("2021-10-23");
            //天数差  
            int i = three.compareTo(four);
            //是否之后
            boolean after = three.isAfter(four);
            //是否之前
            boolean before = three.isBefore(four);
            //是否相等
            boolean equals = three.equals(four);
            //时间的月份 比较
             boolean equalsMonth = three.getMonth().equals(four.getMonth());

    1.17 时间转换格式

      /**
             * 时间转换格式
             */
    
            //  LocalDate 转 string
            String s = three.toString();
            // LocalDate 转 date
            Date date = Date.from(three.atStartOfDay(ZoneOffset.ofHours(8)).toInstant());
            //LocalDate 转 localDateTime
            //获取时分秒
            LocalTime localTime = LocalTime.now();
            //LocalDateTime= 年月日+时分秒
            LocalDateTime localDateTime = LocalDateTime.of(three,localTime);

    测试用例:

        @Test
        public void timeTest() {
            //获取当前时间
            LocalDate now = LocalDate.now();
            //string  转 localDate
            LocalDate time = LocalDate.parse("2021-10-03");
            //时间所属月份的第一天
            LocalDate firstDayOfMonth = time.with(TemporalAdjusters.firstDayOfMonth());
            //时间所属月份的最后一天
            LocalDate lastDayOfMonth = time.with(TemporalAdjusters.lastDayOfMonth());
            //时间下个月的第一天
            LocalDate firstDayOfNextMonth = time.with(TemporalAdjusters.firstDayOfNextMonth());
            //时间 下一年的第一天
            LocalDate firstDayOfNextYear = time.with(TemporalAdjusters.firstDayOfNextYear());
            //时间所属年份的第一天
            LocalDate firstDayOfYear = time.with(TemporalAdjusters.firstDayOfYear());
            //时间所属年份的第一天
            LocalDate lastDayOfYear = time.with(TemporalAdjusters.lastDayOfYear());
            //时间的第一个周末
            LocalDate dayOfWeekInMonth = time.with(TemporalAdjusters.dayOfWeekInMonth(1, DayOfWeek.SUNDAY));
            //时间的第二个周三
            LocalDate dayOfWeekInMonth1 = time.with(TemporalAdjusters.dayOfWeekInMonth(2, DayOfWeek.WEDNESDAY));
            //时间 上个月的最后一周
            LocalDate with = time.with(TemporalAdjusters.dayOfWeekInMonth(0, DayOfWeek.SUNDAY));
            //时间所属月份第一个 周几 示例:第一个周一日期
            LocalDate firstInMonth = time.with(TemporalAdjusters.firstInMonth(DayOfWeek.WEDNESDAY));
            //时间所属月份最后一个周几 日期 示例:最后一个周天日期
            LocalDate lastInMonth = time.with(TemporalAdjusters.lastInMonth(DayOfWeek.SUNDAY));
            //时间下一个周几 日期 示例:该时间的下一个周日 日期
            LocalDate nextSunday = time.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
            //时间 上一个周几 日期 示例:该时间的 上一个周日 日期
            LocalDate previousSunday = time.with(TemporalAdjusters.previous(DayOfWeek.SUNDAY));
            // 获取时间的具体的 月 周 日
            Month month = time.getMonth();
            DayOfWeek dayOfWeek = time.getDayOfWeek();
            int dayOfMonth = time.getDayOfMonth();
    
            /**
             * 时间 年月日的 加减
             */
            //
            LocalDate minusDays = time.minusDays(3);
            LocalDate localDate1 = time.minusWeeks(1);
            LocalDate minusMonths = time.minusMonths(2);
            LocalDate minusYears = time.minusYears(1);
            //
            LocalDate localDate = time.plusDays(7);
            LocalDate plusWeeks = time.plusWeeks(1);
            LocalDate months = time.plusMonths(1);
            LocalDate plusYears = time.plusYears(5);
    
            /**
             * 时间 的 比较
             */
            LocalDate three = LocalDate.parse("2021-10-03");
            LocalDate four = LocalDate.parse("2021-10-23");
            //天数差
            int i = three.compareTo(four);
            //是否之后
            boolean after = three.isAfter(four);
            //是否之前
            boolean before = three.isBefore(four);
            //是否相等
            boolean equals = three.equals(four);
            //时间的月份 比较
            boolean equalsMonth = three.getMonth().equals(four.getMonth());
    
    
            /**
             * 时间转换格式
             */
    
            //  LocalDate 转 string
            String s = three.toString();
            // LocalDate 转 date
            Date date = Date.from(three.atStartOfDay(ZoneOffset.ofHours(8)).toInstant());
            //LocalDate 转 localDateTime
            //获取时分秒
            LocalTime localTime = LocalTime.now();
            //LocalDateTime= 年月日+时分秒
            LocalDateTime localDateTime = LocalDateTime.of(three,localTime);
    
        }
  • 相关阅读:
    Java中的变量
    Java是什么
    leetcode 75. 颜色分类
    leetcode 283. 移动零
    剑指 Offer 65. 不用加减乘除做加法
    剑指 Offer 53
    剑指 Offer 58
    剑指 Offer 58
    剑指 Offer 57
    剑指 Offer 57. 和为s的两个数字
  • 原文地址:https://www.cnblogs.com/zq1003/p/15752570.html
Copyright © 2020-2023  润新知