返回顶部
首页 > 资讯 > 后端开发 > Python >Java将时间按月份分段的实现思路与方法
  • 198
分享到

Java将时间按月份分段的实现思路与方法

2024-04-02 19:04:59 198人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

前言 有时候我们得到一段时间,需要将时间按照月份将这一段时间来分段。比如开始时间为 2020/07/15 至 2021/07/05 按照月份来将数据分组展示,所以需要将这端时间分为

前言

有时候我们得到一段时间,需要将时间按照月份将这一段时间来分段。比如开始时间为 2020/07/15 至 2021/07/05 按照月份来将数据分组展示,所以需要将这端时间分为以下几段:

2020/07/15 ~ 2020/08/01
2020/08/01 ~ 2020/09/01
2020/09/01 ~ 2020/10/01
...
2021/06/01 ~ 2021/07/01
2021/07/01 ~ 2021/07/05

一、知识点

将时间分类主要是用到了Java中的 Calendar,像一般需要对时间进行处理的时候都是需要用到这个类的。可以使用 Calendar 这个类设置或获取日历中的时间,一些常用的api如下所示:

初始化Calendar对象


Calendar calendar = Calendar.getInstance();

设置日历的时间


Date time = new Date;
calendar.setTime(time);

获取日历中的时间(年月日)


calendar.set(Calendar.YEAR, 2021); // 年
calendar.add(Calendar.MONTH, 1); // 月
calendar.set(Calendar.DAY_OF_MONTH, 1); // 日

二、思路分析

大概的实现思路就是:从开始时间开始,以累加的方式逐月增加,直到当前时间大于结束时间则停止叠加。

要注意的是,即使当前时间大于结束时间也需要把结束时间添加到结果集中。因为最后一个时间段是从月初到结束日期的。

三、实现方案

实现的方式就和思路中是一样的,一些注释都写在代码中了,如下图所示:



public static List<Long> getIntervalTimeByMonth(Date startTime, Date endTime) {
    List<Long> dateList = new ArrayList<>();
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(startTime);
    dateList.add(calendar.getTimeInMillis());
    while (calendar.getTimeInMillis() < endTime.getTime()) {
        // 当月底
        calendar.add(Calendar.MONTH, 1);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.add(Calendar.DATE, -1);
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        if(calendar.getTimeInMillis() >= endTime.getTime()){
            dateList.add(endTime.getTime());
            break;
        }
        // 下月初
        calendar.add(Calendar.DATE, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        dateList.add(calendar.getTimeInMillis());
    }
    return dateList;
}

测试的代码如下所示:


public static void main(String[] args) throws ParseException {
    SimpleDateFORMat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date beginDate = sdf.parse("2020-07-15");
    Date endDate = sdf.parse("2021-07-05");
    List<Long> endDateList = DateUtil.getIntervalTimeByMonth(beginDate, endDate);
    for (int i = 0; i < endDateList.size(); i++) {
        Long beginStr = endDateList.get(i);
        String begin1 = sdf1.format(new Date(beginStr));
        System.out.println("第" + i + "段时间区间:" + begin1);
    }
}

测试的结果如下所示:

总结

到此这篇关于Java将时间按月份分段的实现思路与方法的文章就介绍到这了,更多相关Java时间按月份分段内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java将时间按月份分段的实现思路与方法

本文链接: https://lsjlt.com/news/130012.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java将时间按月份分段的实现思路与方法
    前言 有时候我们得到一段时间,需要将时间按照月份将这一段时间来分段。比如开始时间为 2020/07/15 至 2021/07/05 按照月份来将数据分组展示,所以需要将这端时间分为...
    99+
    2024-04-02
  • Java如何将时间按月份分段
    本篇内容介绍了“Java如何将时间按月份分段”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言有时候我们得到一段时间,需要将时间按照月份将这...
    99+
    2023-06-20
  • Java 将list集合数据按照时间字段排序的方法
    示例: public static List<Product> getProductTestList(){ List<Product&g...
    99+
    2023-03-13
    java list集合时间排序 java list时间排序
  • mysql中实现按时间分组查询的方法
    这篇文章主要介绍mysql中实现按时间分组查询的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql按时间分组查询的方法:使用函数【DATE_FORMAT(date,form...
    99+
    2024-04-02
  • Nginx纯配置实现日志实时上报的思路与方法
    目录前言实现思路实现步骤1. 编译 Nginx2. 配置文件如下总结前言 Nginx 作为常用的负载均衡网关. 会产生大量的日志. 但是由于 Nginx 的配置文件是一种声明式的编程...
    99+
    2024-04-02
  • PHP分布式架构的设计思路与实现方法
    随着互联网业务的不断发展和用户量的不断增加,单机架构已经无法满足业务需求,分布式架构成为了目前互联网行业的主流趋势之一。PHP作为一种流行的后端开发语言,也需要在分布式架构中发挥作用。本文将介绍PHP分布式架构的设计思路和实现方法。 一、...
    99+
    2023-09-03
    分布式 npm numy
  • 详解Java中二分法的基本思路和实现
    目录在一个有序数组中,找某个数是否存在在一个有序数组中,找大于等于某个数最左侧的位置在排序数组中查找元素的第一个和最后一个位置局部最大值问题在一个有序数组中,找某个数是否存在 思路...
    99+
    2024-04-02
  • PHP技巧分享:实现月份转换为中文的方法
    PHP技巧分享:实现月份转换为中文的方法 在开发网站和应用程序时,经常需要将日期转换为不同的格式,其中包括将月份转换为中文。在PHP中,可以通过一些简单的方法实现将月份名称转换为中文的...
    99+
    2024-04-02
  • Android模仿实现闲鱼首页的思路与方法
    首先我们来看看效果图 Demo是基于MVVM模式来编写的,欢迎大家给予批评和指正。 其中Banner的无限轮播用了PageSnapHelper,后续RecycleView...
    99+
    2022-06-06
    闲鱼 首页 方法 Android
  • RiSearch PHP 实现时间序列数据搜索与聚合的技术思路
    引言:随着互联网的发展,很多应用系统都会产生大量的时间序列数据,比如传感器数据、日志数据、股票价格等。对于这些数据,一个重要的需求就是能够快速、准确地进行搜索和聚合。RiSearch是一个基于Redis实现的全文搜索引擎,在这篇文章中,我们...
    99+
    2023-10-21
    时间序列 搜索 聚合
  • uniapp多选框全选功能的实现思路与方法实例
    目录前言实现思路总结 前言 uniapp内置的checkbox其实以及checkbox-group本来挺好的,但是有两个问题: 无法依赖其事件实现全选样式固定,难以修改 他...
    99+
    2024-04-02
  • 基于SpringBoot+Vue的毕业设计与实现——Java毕设思路分享
    毕设选题经验分享:很多互联网专业的小伙伴们在选择自己的毕设主题的时候不知道做什么,在这时候就可以结合生活日常和当下较为流行的事物,通过对往年毕设的项目进行总结归纳,主题基本上都离不开旅游管理、移动办公...
    99+
    2023-10-08
    java spring boot idea vue.js 后端
  • AmazeUI底部导航栏与分享按钮的实现方法
    这篇文章主要介绍AmazeUI底部导航栏与分享按钮的实现方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!手机端页面的底部导航栏,仿照安卓、IOS等Apps应用底部导航栏的设计。许许多多的移动端页面前端框架都有这个组...
    99+
    2023-06-09
  • Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
    本文实例讲述了Python实现将一个大文件按段落分隔为多个小文件的简单操作方法。分享给大家供大家参考,具体如下: 今天帮同学处理一点语料。语料文件有点大,并且是以连续两个换行符作为段落标志,他想把它按段落分...
    99+
    2022-06-04
    多个 段落 操作方法
  • PHP生日转时间戳的实现方法分享
    PHP生日转时间戳的实现方法分享 在日常开发中,有时候我们需要将用户的生日转换为时间戳的形式,以便进行更多的操作,比如计算年龄、比较时间等。本文将分享如何使用PHP将生日转换为时间戳的...
    99+
    2024-03-04
    php 时间戳 生日
  • PHP开发买菜系统的配送时间段选择与预约功能实现方法
    随着互联网的快速发展,线上购物已经成为人们生活的一部分。买菜系统作为其中的一种形式,受到了越来越多用户的喜爱。在实际的开发中,针对买菜系统的配送时间段选择与预约功能可以说是至关重要的一部分。本文将介绍实现这一功能的方法。首先,我们需要在系统...
    99+
    2023-11-01
    PHP开发 预约功能 配送时间段
  • PHP快速实现美国时间转换为中国时间的方法分享
    PHP是一种广泛应用于网站开发的服务器端脚本语言,它的灵活性和强大功能使得开发者能够快速实现各种功能。在网站开发中,经常会遇到需要将不同国家或地区的时间进行转换的需求,比如将美国时间转...
    99+
    2024-04-02
  • Java带有过期时间的LRU实现方法是什么
    本篇内容主要讲解“Java带有过期时间的LRU实现方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java带有过期时间的LRU实现方法是什么”吧!一、什么是LRULRU全称是Least ...
    99+
    2023-06-16
  • iOS实现无感知上拉加载更多功能的思路与方法
    目录什么是无感知上拉加载更多如何实现无感知上拉加载更多网上的思路(一)网上的思路(二)MJRefresh代码的追根朔源总结什么是无感知上拉加载更多 什么是无感知,这个这样理解:在网...
    99+
    2022-05-22
    ios 上拉 加载
  • Java生成日期时间存入Mysql数据库的实现方法
    目录一、创建数据库标准二、数据库表结构三、使用步骤一、创建数据库标准 1.表的必备三个字段:id、gmt_create、gmt_modified 2.gmt_create是创建时间,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作