zoukankan      html  css  js  c++  java
  • 获取两个时间段中间所有日期,工具类

    package com.jingluu.admin.modules.elasticsearch.utils;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.time.Instant;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    
    /**
     * @Author: eros
     * @Description:
     * @Date: Created in 2020/4/15 9:43
     * @Version: 1.0
     * @Modified By:
     */
    public class DateTimeUtils {
    
        public static final SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
        public static final SimpleDateFormat date_sdf = new SimpleDateFormat("yyyy-MM-dd");
    
        /**
         * 当前日历,这里用中国时间表示
         *
         * @return 以当地时区表示的系统当前日历
         */
        public static Calendar getCalendar() {
            return Calendar.getInstance();
        }
    
        /**
         * 系统时间的秒数
         *
         * @return 系统时间的秒数
         */
        public static long getSeconds() {
            return Instant.now().getEpochSecond();
        }
    
        /**
         * 指定毫秒数表示日期的默认显示,具体格式:年-月-日
         *
         * @param millis 指定的毫秒数
         * @return 指定毫秒数表示日期按“年-月-日“格式显示
         */
        public static String formatDate(long millis) {
            return date_sdf.format(new Date(millis));
        }
    
        /**
         * @Description: 获取两个时间段 之间的所有日期,具体格式:年-月-日
         * @Author: eros
         * @Date: 2020/4/15 10:32
         * @param startDateStr 开始时间 年-月-日 时:分:秒
         * @param endDateStr 结束时间 年-月-日 时:分:秒
         * @Return: java.util.List<java.lang.String>
         * @Exception:
         */
        public static List<String> getDateList(String startDateStr, String endDateStr) throws ParseException {
            List<String> result = new ArrayList<>();
            // 将 str时间转为 Date 类型
            Date startDate = datetimeFormat.parse(startDateStr);
            Date endDate = datetimeFormat.parse(endDateStr);
            // 这里主要借助于Calendar 对于两个时间的比较,来存储
            Calendar startCal = getCalendar();
            startCal.setTime(startDate);
            Calendar endCal = getCalendar();
            endCal.setTime(endDate);
            do {
                result.add(formatDate(startCal.getTimeInMillis()));
                startCal.add(Calendar.DAY_OF_YEAR, 1);
            } while (startCal.before(endCal));
            // 因为精细度到 日期,所有最后一个日期难以处理,需要单独来做
            String end = formatDate(endCal.getTimeInMillis());
            if(!result.contains(end)) {
                result.add(end);
            }
            return result;
        }
    
    }
  • 相关阅读:
    Web应用Word生成
    记 Ubuntu14.04 Monodevelop 安装的两个问题
    CSDN上下载的一些关于Android程序调用Webservice执行不成功的问题
    Binary Search Tree Iterator
    算法之贪心算法
    《SAS编程与数据挖掘商业案例》学习笔记之十七
    数据库设计之半结构化存储
    Timus 1446. Sorting Hat 分类问题
    WebGL on iOS8 最终等到了这一天
    仿netty线程池简化版本
  • 原文地址:https://www.cnblogs.com/kongkongFabian/p/12703693.html
Copyright © 2011-2022 走看看