JAVA日期相关操作

news2024/12/25 12:12:54

JAVA日期相关操作

  1. 计算两个日期相差的天数

        /**
         * 计算两个日期相差的  天数
         * @param smdate String类型初始时间
         * @param bdate  String类型截至时间
         * @return Integer
         */
        public static Integer dayCompare(String smdate, String bdate) throws Exception {
            Date start = sdf.parse(smdate);
            Date end = sdf.parse(bdate);
            Calendar cal = Calendar.getInstance();
            cal.setTime(start);
            long time1 = cal.getTimeInMillis();
            cal.setTime(end);
            long time2 = cal.getTimeInMillis();
            long between_days = (time2 - time1) / (1000 * 3600 * 24);
            return Integer.parseInt(String.valueOf(between_days));
        }
    
  2. 计算两个日期之间的所有日期

       /**
         * @param startDay 开始时间
         * @param endDay   结束时间
         * @return List<String>
         * @author bigfaceYang
         * 获取两个日期之间天数
         * @date 2021/11/11 16:09
         */
        public static List<String> getDays(String startDay, String endDay) throws Exception {
            List<String> list = new ArrayList<>();
            Calendar min = Calendar.getInstance();
            Calendar max = Calendar.getInstance();
            min.setTime(sdf.parse(startDay));
            min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), min.get(Calendar.DATE), 0, 0, 0);
            max.setTime(sdf.parse(endDay));
            max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), max.get(Calendar.DATE), 23, 59, 59);
            Calendar curr = min;
            while (curr.before(max)) {
                list.add(sdf.format(curr.getTime()));
                curr.add(Calendar.DATE, 1);
            }
            return list;
        }
    

    运行结果截图:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mnSwybqg-1691979114359)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230811134047935.png)]

    1. 获取当年所有的月份(yyyy-MM)
    /**
         * 获取当年所有月
         *
         * @return
         */
    
        public static String[] getYearFullMonth() {
    
            String[] array = new String[12];
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
            Calendar cal = Calendar.getInstance();
            cal.set(Calendar.YEAR, Integer.parseInt(year.format(new Date())));
            cal.set(Calendar.MONTH, 0);
            for (int i = 0; i < 12; i++) {
                array[i] = sdf.format(cal.getTime());
                cal.add(Calendar.MONTH, 1);
            }
            return array;
        }
    
    1. 两个月份之间的月份(yyyy-MM)
     /**
         * @author bigfaceYang
         *  获取两个日期间年月集合
         * @param minDate 最小时间 2023-01
         * @param maxDate 最大时间 2024-05
         * @return 日期集合 格式为 年-月
         * @throws Exception
         */
        public static List<String> getMonthBetween(String minDate, String maxDate) throws Exception {
            ArrayList<String> result = new ArrayList<String>();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");//格式化为年月
    
            Calendar min = Calendar.getInstance();
            Calendar max = Calendar.getInstance();
    
            min.setTime(sdf.parse(minDate));
            min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);
    
            max.setTime(sdf.parse(maxDate));
            max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2);
    
            Calendar curr = min;
            while (curr.before(max)) {
                result.add(sdf.format(curr.getTime()));
                curr.add(Calendar.MONTH, 1);
            }
    
            return result;
        }
    
    

在这里插入图片描述

  1. 根据年份获取年份下所有月份
/**
     * 根据年份获取年份下所有月份
     * @param year
     * @return
     */

    public static String[] getYearFullMonth(String year){


        String[] array = new String[12];
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR,Integer.parseInt(year));
        cal.set(Calendar.MONTH, 0);
        for(int i=0;i<12;i++){
            array[i] = sdf.format(cal.getTime());
            cal.add(Calendar.MONTH, 1);
        }
        return array;
    }

运行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6nrSX59y-1691979114359)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230811134413090.png)]

  1. 获取N个月之前的数据
 /**
     * @author wmw
     * 获取当前N个月之前或之后的月份     当num=-1 代表前一个月的数据  num=1 代表后一个月的数据
     * @date 2022/9/14 15:27
     * @return null
     */
    public static String getLastMonth(Integer num){
        SimpleDateFormat month = new SimpleDateFormat("yyyy-MM");
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.MONTH,num);
        Date time = c.getTime();
        return month.format(time);
    }
     @SneakyThrows
        public static void main(String[] args) {
            String lastMonth = getLastMonth(2);
            System.out.println(lastMonth);
			//运行结果为:2023-10
        }

未完持续更新中。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/875097.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

12-数据结构-数组、矩阵、广义表

数组、矩阵、广义表 目录 数组、矩阵、广义表 一、数组 二.矩阵 三、广义表 一、数组 这一章节理解基本概念即可。数组要看清其实下标是多少&#xff0c;且二维数组&#xff0c;存取数据&#xff0c;要先看清楚是按照行存还是按列存&#xff0c;按行则是正常一行一行的取读写…

每天一道leetcode:115. 不同的子序列(动态规划困难)

今日份题目&#xff1a; 给你两个字符串 s 和 t &#xff0c;统计并返回在 s 的 子序列 中 t 出现的个数。 题目数据保证答案符合 32 位带符号整数范围。 示例1 输入&#xff1a;s "rabbbit", t "rabbit" 输出&#xff1a;3 解释&#xff1a; 如下所…

ssm+vue基于java的健身房管理系统源码和论文PPT

ssmvue基于java的健身房管理系统源码和论文PPT015 开发工具&#xff1a;idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具&#xff1a;navcat,小海豚等 开发技术&#xff1a;java ssm tomcat8.5 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统…

(一)Unity开发Vision Pro介绍

1.介绍 1.1 介绍 VisionOS 可实现与现实世界无缝集成并与其他虚拟内容共存的 3D 多任务体验。这为个人生产力、生活方式和娱乐应用打开了一个充满新可能性的世界&#xff0c;并为开发人员打开了一个全新的市场。然而&#xff0c;它也带来了围绕多任务处理和与身体互动的新挑战…

运维监控学习笔记6

应用监控: 安装nginx的过程&#xff1a; yum install -y gcc gcc-c pcre-devel openssl-develcd /usr/local/src wget http://nginx.org/download/nginx-1.24.0.tar.gztar -zxvf nginx-1.22.1.tar.gzuseradd -s /sbin/nologin -M www./configure --prefix/usr/local/nginx-1.…

HCIP-OpenStack发放云主机

1、云中的概念 在云平台注册了一个账号&#xff0c;这个账号对于云平台来说&#xff0c;就是一个租户或者一个项目。 租户/项目&#xff08;tenant/project&#xff09;&#xff0c;是一个意思。主机聚合就是主机组的意思。 region&#xff08;区域&#xff09;&#xff0c;就…

发过来的pdf文件怎么编辑?了解一下这几种编辑方法

发过来的pdf文件怎么编辑&#xff1f;PDF适用于各种用途。但是&#xff0c;许多人可能需要对PDF文件进行编辑&#xff0c;以满足特定的需求和要求。例如&#xff0c;他们可能需要添加或删除某些元素&#xff0c;更改文本或图像&#xff0c;或者将PDF文件转换为其他格式。在这种…

实例037 没有标题栏可义改变大小的窗口

实例说明 隐藏Windows窗口的标题栏之后&#xff0c;窗口只剩下一个客户区域&#xff0c;有点像Panel控件在窗口中的样子&#xff0c;而这样的窗口通常是不能够改变大小的。因为屏蔽其标题栏之后&#xff0c;窗口默认将边框也去除了&#xff0c;本例将用特殊的方法建立一个没有…

Linux代理的设置与使用方法

在Linux平台上&#xff0c; 代理的设置使用方法更是让人头疼。本文将为你分享Linux上 代理的设置和使用方法&#xff0c;并提供一些实用的解决方案&#xff0c;方便实际操作。 我们先来了解一下常用的 代理软件 在Linux上&#xff0c;有许多 代理软件可供选择。以下是几种常用的…

【Elsevier旗下】1区SCI,5天见刊!稳定检索36年,大数据、人工智能、机器学习、语音、语言、会话、情绪识别等领域

近日国自然预计将在下周8月20日之前公布&#xff0c;想必申请过国自然基金作者都知道&#xff0c;需要有研究基础&#xff0c;说白了就是需要有文章支持。那么稿子写好了&#xff0c;选择一本靠谱优质期刊也是一门学问。 本期小编推荐2本Elsevier 旗下审稿快刊&#xff0c;各项…

Python实现SSA智能麻雀搜索算法优化循环神经网络分类模型(LSTM分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法&#xff0c;在2020年提出&a…

电商财务新时代:轻松自动对账,财务效率倍增

电商领域频繁的多平台财务对账常常令企业头痛不已。然而&#xff0c;随着轻易云数据集成平台的崭新解决方案&#xff0c;财务对账的痛点迎刃而解。本文通过引人入胜的实例&#xff0c;深入探讨电商财务对账的现状&#xff0c;突出轻易云数据集成平台在自动对账中的强大作用&…

微信小程序有哪几种变现途径?

纵观现在市面上的微信小程序&#xff0c;目前变现的途径主要有&#xff1a;广告变现、电商变现、游戏付费、服务付费等。 1.广告变现 广告变现是小游戏、工具类、资讯类小程序变现的主要方式。微信官方为游戏开发者提供的扶植政策&#xff0c;对于工具类、资讯类小程序&#…

自然语言处理实战项目15-四种文本纠错模型的对比与实践,解决大家写作问题

大家好,我是微学AI,进入给大家介绍一下自然语言处理实战项目15-四种文本纠错模型的对比与实践,解决大家写作问题。文本纠错模型是一个旨在解决大家写作问题的实践项目。它基于先进的自然语言处理技术,特别是文本纠错领域的模型和算法,能够帮助用户快速、准确地纠正文本中的…

最新 python 爱心代码?

python程序代码&#xff1a;heart.py from math import cos, pi import numpy as np import cv2 import os, globclass HeartSignal:def __init__(self, curve"heart", title"Love U", frame_num20, seed_points_num2000, seed_numNone, highlight_rate0.…

python——案例20:计算数字组合方式

案例20&#xff1a;计算数字组合方式 假设三个数字1、2、3任意排列&#xff0c;有几种组合方式&#xff0c;分别是什么&#xff1f; sum0 for a in range(1,4):for b in range(1,4):for c in range(1,4):if a!b and b!c and a!c:print(a,b,c)sum1print("答案为&#xff1a…

中小企业体育代言:探索费用策略与实际操作

随着体育市场的不断扩大和企业品牌的不断提升&#xff0c;中小型企业正逐渐将目光投向了体育明星代言&#xff0c;希望通过这一策略来提升品牌知名度、美誉度&#xff0c;进而吸引目标消费者的注意力并提升销售量。然而&#xff0c;中小型企业请体育明星代言的费用究竟是多少呢…

Python爬虫的应用场景与技术难点:如何提高数据抓取的效率与准确性

作为专业爬虫程序员&#xff0c;我们在数据抓取过程中常常面临效率低下和准确性不高的问题。但不用担心&#xff01;本文将与大家分享Python爬虫的应用场景与技术难点&#xff0c;并提供一些实际操作价值的解决方案。让我们一起来探索如何提高数据抓取的效率与准确性吧&#xf…

pytorch单机多卡后台运行

nohup sh ./train_chat.sh > train_chat20230814.log 2>1&参考资料 Pytorch单机多卡后台运行的解决办法

【产品设计】移动端表单设计

本文主要是根据项目的表单填写体验差被客户撤下线重新整改&#xff0c;而对此将表单进行了新的用户体验设计的一些构思。 一、现状 传统的PC端空间范围大&#xff0c;能够将表单的所有信息连同温馨提示语等平铺展示出来&#xff0c;但是一下子用户看到这么多内容会给用户带来压…