Java8的LocalDate类用来获取年月日的开始结束时间,当前时间


提示:以下是本篇文章正文内容,下面案例可供参考

一、获取本日开始结束时间?

代码如下:

	/**
     * 获取本日开始时间
     * @return 开始时间
     */
    public static String getStartTime(){
        LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
        return  startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }
    
    /**
     * 获取本日结束时间
     * @return
     */
    public static String getEndTime(){
        LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
        return endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }

二、获取本周开始结束时间

代码如下(示例):

/**
     * 获取本周开始时间
     * @return
     */
    public static String getStartWeek(){
        LocalDate today = LocalDate.now();
        LocalDate oneDayOfWeek = getOneDayOfWeek(today, 1);
        return LocalDateTime.of(oneDayOfWeek,LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }
    
    /**
     * 获取本周的结束时间
     * @return
     */
    public static String getEndWeek(){
        LocalDate today = LocalDate.now();
        LocalDate oneDayOfWeek = getOneDayOfWeek(today, 7);
        return LocalDateTime.of(oneDayOfWeek,LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }
    
    /**
     * 获取一周内的某一天
     * @param today 这周内任意一天的日期
     * @param day 想要获取一周中的第几天
     * @return LocalDate
     */
    private static LocalDate getOneDayOfWeek(TemporalAccessor today, int day){
        TemporalField fieldIso = WeekFields.of(DayOfWeek.MONDAY, 1).dayOfWeek();
        LocalDate localDate = LocalDate.from(today);
        return localDate.with(fieldIso, day);
    }

三、获取本月的开始结束时间

代码如下(示例):

/**
     * 获取本月的开始日期
     * @return
     */
    public static String getOneDayOfMonth(){
        LocalDate date = LocalDate.now();
        LocalDate with = date.with(TemporalAdjusters.firstDayOfMonth());
        return LocalDateTime.of(with,LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }
    
    /**
     * 获取本月的结束日期
     * @return
     */
    public static String getEndDayOfMonth(){
        LocalDate date = LocalDate.now();
        LocalDate with = date.with(TemporalAdjusters.lastDayOfMonth());
        return LocalDateTime.of(with,LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }

四、获取指定某月的开始结束日期

	/**
     * 获取指定某月的开始日期
     * @param month 月份
     * @return
     */
    public static String getMonthStartOneDay(int month){
        LocalDate localDate = LocalDate.now();
        return LocalDateTime.of(LocalDate.of(localDate.getYear(),month,1),LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }

    /**
     * 获取指定月的结束日期
     * @param month 月份
     * @return
     */
    public static String getMonthEndTime(int month){
        YearMonth yearMonth = YearMonth.of(LocalDate.now().getYear(), month);
        LocalDate localDate = yearMonth.atEndOfMonth();
        return LocalDateTime.of(localDate,LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }

五、获取本年度的开始结束时间

	/**
     * 获取本年度开始日期
     * @return
     */
    public static String getOneDayOfYear(){
        LocalDate date = LocalDate.now();
        LocalDate with = date.with(TemporalAdjusters.firstDayOfYear());
        return LocalDateTime.of(with,LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }

    /**
     * 获取本年度结束日期
     * @return
     */
    public static String getEndDayOfYear(){
        LocalDate date = LocalDate.now();
        LocalDate with = date.with(TemporalAdjusters.lastDayOfYear());
        return LocalDateTime.of(with,LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }

六、根据开始时间结束时间获取时间段内的所有时间包括开始结束时间

	/**
     * 根据开始时间结束时间获取时间段内所有时间
     * @param startTime
     * @param endTime
     * @return
     */
    public static List<String> getDateListOfDateRange(String startTime,String endTime){
        List<String> dateList = new ArrayList<>();
        long betweenDay = DateUtil.betweenDay(DateUtil.parse(startTime, "yyyy-MM-dd HH:mm:ss"), DateUtil.parse(endTime, "yyyy-MM-dd HH:mm:ss"), true);
        for (int i = 0; i <= betweenDay; i++) {
            DateTime dateTime = DateUtil.offsetDay(DateUtil.parse(startTime), i);
            dateList.add(DateUtil.format(dateTime, "yyyy-MM-dd"));
        }
        return dateList;
    }

七、当前时间

String newTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

总结。

获取更详细的时间请去地址:
链接: 江湖人称小城写的Java8获取年、月、周数据和某一天的开始结束时间
LocalDate类知识简介:
链接: LocalDate类知识

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐