LocalDate类操作时间

737 阅读2分钟
        LocalDate today = LocalDate.now(); //当前日期 yyyy-dd-mm
        today.getMonth(); //APRIL 当前日期-月 getvalue 可以获得数字
        today.getMonthValue();//4   当前日期-月
        today.getYear();//2018 当前日期-年
        today.getDayOfMonth();//22 当前日期-日
        today.getDayOfWeek();//SUNDAY 返回当前日期是星期几,
        today.getDayOfWeek().getValue();//7 getValue 可以获取1-7数字星期
        today.getDayOfYear();//获取当前年到今天的天数,2018.01.01---2018.04.22 =112天,包含今天
        today.plusDays(1);//2018-04-23  获得当前日期之后的日期
        today.minusDays(1);//2018-04-21  获得当前日期之前的日期
        today.atTime(LocalTime.now());//2018-04-22T16:48:22.708

        LocalDate DayofYear = LocalDate.ofYearDay(2018, 112);//返回哪一年,多少天后的日期 ==> 2018-04-22
        LocalDate EpochDay = LocalDate.ofEpochDay(0);//获得1970-01-01后的日期,1970-01-01后的0天还是1970-01-01,如果是ofEpochDay(1) 则返回 1970-01-02

        LocalDate Dateoftaking = LocalDate.of(2018,04,23);//根据年月日返回日期 yyyy-dd-mm
        LocalDate endOfFeb = LocalDate.parse("2018-02-28"); // 严格按照ISO yyyy-MM-dd验证,02写成2都不行
        LocalDate.parse("2018-02-28"); // 无效日期无法通过:java.time.DateTimeException: Invalid date 'February 29' as '2018' is not a leap year


        // 取本月第1天:
        LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth()); // 2018-04-01
        // 取本月第2天:
        LocalDate secondDayOfThisMonth = today.withDayOfMonth(2); // 2018-04-02
        // 取本月最后一天,不用计算是28,29,30还是31:
        LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth()); // 2018-04-30
        // 取下一天:
        LocalDate firstDayOf = lastDayOfThisMonth.plusDays(1); // 变成了2018-05-01
        // 取2019年2月第一个周一
        LocalDate firstMondayOf = LocalDate.parse("2019-02-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)); //2019-02-04


        /**
         * LocalTime
         * */
        LocalTime now = LocalTime.now(); //16:21:08.430  获得当前时间

        now.getHour();//时
        now.getMinute();//分
        now.getNano();//纳秒
        now.getSecond();//秒

        now.of(21, 30, 59, 11011);//或的21:30:59:11011
        now.plusHours(3);//当前时间3小时后
        now.plusMinutes(3);//当前时间3分钟后
        now.plusSeconds(3);//当前时间3秒后
        now.plusNanos(3);//当前时间3纳秒后

        now.minusHours(3);//当前时间3小时前
        now.minusMinutes(3);//当前时间3分钟前
        now.minusSeconds(3);//当前时间3秒前
        now.minusNanos(3);//当前时间3纳秒前
        
        //构造时间
        LocalTime zero = LocalTime.of(0, 0, 0); // 00:00:00
        LocalTime mid = LocalTime.parse("12:00:00"); // 12:00:00

        LocalDateTime localDateTime = now.atDate(LocalDate.now()); //获得当前日期时间  2018-04-22T16:23:07.232