JAVA 获取某段时间内的所有日期集合

2023-11-04

集合里包含月份: 开始~结束
2019-01-01 00:00:00
2019-01-31 23:59:00
2019-02-01 00:00:00
2019-02-28 23:59:00
2019-03-01 00:00:00
2019-03-31 23:59:00

    public static void main(String[] args) throws ParseException {
        long l = System.currentTimeMillis();//当前时间戳
        String nowDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(l));//当前时间字符串
        String startDate ="2019-01-01 00:00:00";
        List<String> dates = findMonths(startDate, nowDate);
        for (int i = 0; i < dates.size(); i++) {
            System.out.println(dates.get(i));
        }

    }

    /**
     * 获取对应日期列表
     * @param dBegin
     * @param dEnd
     * @return
     * @throws ParseException
     * @throws java.text.ParseException
     */
    public static List<String> findMonths(String dBegin, String dEnd) throws ParseException, java.text.ParseException {
        //日期工具类准备
        DateFormat resulfmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //设置开始时间
        Calendar calBegin = Calendar.getInstance();
        calBegin.setTime(resulfmt.parse(dBegin));
        //设置结束时间
        Calendar calEnd = Calendar.getInstance();
        calEnd.setTime(resulfmt.parse(dEnd));
        //装返回的日期集合容器
        List<String> dateList = new ArrayList<String>();
        // 每次循环给calBegin日期加一天,直到calBegin.getTime()时间等于dEnd
        while (calEnd.after(calBegin))  {
            // 根据日历的规则,为给定的日历字段添加或减去指定的时间量
                // 优先记录当月时间: 开始时间
            dateList.add(resulfmt.format(calBegin.getTime()));
                // 优先记录当月时间: 结束
                    // 当前日历月份加1 来到了下个月
            calBegin.add(Calendar.MONTH, 1);
                    // 下个月天数减1 来到了当月(即开始月份)的最后一天
            //calBegin.add(Calendar.DAY_OF_MONTH, -1);
                    // 下个月时间减1分钟 来到了当月(即开始月份)的最后一天的23:59:00
            calBegin.add(Calendar.MINUTE,-1);
                // 记录当月的结束时间  82800000L
            dateList.add(resulfmt.format(calBegin.getTime()));//获取当前日历时间戳并格式化
            // 当前月份加1得到下个月份 
            // calBegin.add(Calendar.DAY_OF_MONTH, 1);
            calBegin.add(Calendar.MINUTE, 1);
            //依次循环并记录日期
        }
        return dateList;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA 获取某段时间内的所有日期集合 的相关文章

随机推荐

  • C++——静态数据成员

    静态成员分为静态数据成员和静态成员函数 一 静态数据成员的概念 静态数据成员不是某个对象的的成员 而是同一个类所以对象共享的成员 其值对每个对象都是一样的 静态数据成员具有全局性 是类域中的全局变量 不具体属于哪一个对象 在运行之前 编译阶
  • QPainter::begin: Paint device returned engine == 0, type: 1

    QPainter begin Paint device returned engine 0 type 1 QPainter默认只能在paintEvent里面调用 但是 在其他事件中绘制窗体 提示信息如下 QPainter begin Pai
  • BCD码-8421码、5421码、2421码、余3码

    一 BCD码的转换原理 BCD码 使用 4 位二进制来表示 1 位十进制 即使用 4 个位来存储一个十进制的值 使二进制和十进制之间的转换以快捷的进行 比如 使用4位二进制 0000 表示 十进制 0 使用4位二进制 0001 表示 十进制
  • 如何实现html上传文件并被Django后台处理

    如何实现html上传文件并被Django后台处理 1 html前端代码编写 先看代码 代码如下
  • CString类常用方法----Left(),Mid(),Right()……

    CStringLeft intnCount const 从左边1开始获取前 nCount个字符 CStringMid intnFirst const 从左边第 nCount 1个字符开始 获取后面所有的字符 CStringMid intnF
  • 二进制方式部署k8s集群1.21版本-域名形式

    二进制方式部署k8s 1 21版本 域名形式 说明 系统参数 主机名称 IP地址 部署节点 部署组件 m1 192 168 11 187 k8s1 masterk8s2 master k8s1 etcd apiserver controll
  • 爬虫(五):python中的POST的四种请求方式(编码格式)

    POST请求主要包含json格式 xml格式 文件上传 form data 及默认传递的urlencoded HTTP的报文结构 1 请求行 请求方法 请求URL HTTP协议版本三个部分 2 请求头 从第二行开始到倒数第二行都是我们的请求
  • Clang之语法抽象树AST

    语法分析器的任务是确定某个单词流是否能够与源语言的语法适配 即设定一个称之为上下文无关语言 context free language 的语言集合 语法分析器建立一颗与 词法分析出的 输入单词流对应的正确语法树 语法分析树的建立过程主要有两
  • Nacos与Eureka的异同

    1 架构设计 Eureka采用CS架构 由服务注册中心Eureka Server和服务提供者 消费者Eureka Client组成 Nacos采用高可用的P2P设计 无主节点 所有的server节点都是同等作用 支持AP和CP两种模式 2
  • Android 自动获取经纬度,计算距离、经纬度、方位角

    最近做一个项目需要通过GPS获取经纬度 通过计算算出两点之间的距离 通过对Google和百度的疯狂轰炸 终于找到了解决的办法 首先声明权限 android name android permission ACCESS FINE LOCATI
  • Scrcpy视频同步源码分析

    什么是Scrcpy https github com Genymobile scrcpy Scrcpy是genymobile开源的一款手机镜像软件 通过对手机音视频的采集和同步 可以实现在PC平台上控制手机的功能 官方解释 此应用程序镜像通
  • PHP Drupal个人博客

    PHP Drupal个人博客 官网 Prerequisite PHP Composer 快速安装 composer create project drupal recommended project drupal cd drupal php
  • lucene 总体架构

    本文转载至 http www cnblogs com forfuture1978 archive 2009 12 14 1623596 html Lucene概述 一个高效的 可扩展的 全文检索库 全部用Java实现 无须配置 仅支持纯文本
  • 混合整数规划(Mixed Integer Programming)

    混合整数规划 Mixed Integer Programming 混合整数规划问题是运筹优化中经常遇到的一类问题 在这类问题中自变量的类型可能是整数也可能不是整数 相比于连续优化 混合整数规划很多时候会更难求解 在学术界混合整数规划一直是一
  • 最小生成树(普里姆算法和克鲁斯卡尔算法)

    1 基本介绍 2 普里姆算法 普里姆算法 package algorithm import java util Arrays public class PrimDemo public static final int MAX VALUE 1
  • 从p文件到m文件,快速将Matlab p代码转换成m文件

    你是否遇到过这样的问题 发现自己写的Matlab代码根本无法加密 或者别人发给你的MATLAB代码无法打开或运行 如果是这样 那么你需要一款强有力的Matlab解密工具 左左Matlab解密助手 左左解密助手是一款功能强大的Matlab解密
  • 状态机模型

    参考 什么是状态机 用C语言实现进程5状态模型 参考 设计模式 一目了然的状态机图 案例 状态模式 C语言实现 MP3播放 暂停案例 STM32按键消抖 入门状态机思维 常用的while循环内switch case形式 实现状态机的状态跳转
  • java自动化测试语言基础之正则表达式

    java自动化测试语言基础之正则表达式 文章目录 java自动化测试语言基础之正则表达式 Java 正则表达式 Java 正则表达式 正则表达式定义了字符串的模式 正则表达式可以用来搜索 编辑或处理文本 正则表达式并不仅限于某一种语言 但是
  • 树莓派 OCR识别 2-2:chineseocr_lite 部署

    chineseocr lite github项目地址 https github com ouyanghuiyu chineseocr lite 超轻量级中文ocr 支持竖排文字识别 支持ncnn推理 dbnet 1 8M crnn 2 5M
  • JAVA 获取某段时间内的所有日期集合

    集合里包含月份 开始 结束 2019 01 01 00 00 00 2019 01 31 23 59 00 2019 02 01 00 00 00 2019 02 28 23 59 00 2019 03 01 00 00 00 2019 0