JAVA日期相关操作

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);}@SneakyThrowspublic static void main(String[] args) {String lastMonth = getLastMonth(2);System.out.println(lastMonth);//运行结果为:2023-10}

未完持续更新中。。。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习快速入门系列---损失函数

在深度学习中&#xff0c;损失函数的作用是量化预测值和真实值之间的差异&#xff0c;使得网络模型可以朝着真实值的方向预测&#xff0c;损失函数通过衡量模型预测结果与真实标签之间的差异&#xff0c;反映模型的性能。同时损失函数作为一个可优化的目标函数&#xff0c;通过…

Ansible的安装和配置

安装和配置 Ansible 安装所需的软件包 创建名为 /home/greg/ansible/inventory 的静态清单文件&#xff0c;以满足以下要求&#xff1a; 172.25.250.9 是 dev 主机组的成员 172.25.250.10 是 test 主机组的成员 172.25.250.11 和 172.25.250.12 是 prod 主机组的成员 172.2…

解读spring中@Value 如何将配置转自定义的bean

实现方式 着急寻求解决方式的猿友先看这块 定义配置转化类 public class UserConverter implements Converter<String, List<User>> {Overridepublic List<User> convert(String config) {if (StringUtils.isEmpty(config)) {return Collections.emptyLis…

hive on tez资源控制

sql insert overwrite table dwintdata.dw_f_da_enterprise2 select * from dwintdata.dw_f_da_enterprise; hdfs文件大小数量展示 注意这里文件数有17个 共计321M 最后是划分为了21个task 为什么会有21个task&#xff1f;不是128M 64M 或者说我这里小于128 每个文件一个map…

从LeakCanary看Fragment生命周期监控

前文中我们已经了解到LeakCanary中Service生命销毁的监听方式&#xff0c;那么Fragment的生命周期监听又是怎么实现的呢&#xff1f; Activity生命周期监听&#xff0c;在Application里面有ActivityLifecycleCallbacks&#xff0c;那么Fragment是否相似呢&#xff1f;我们的第…

Linux 终端操作命令(2)内部命令

Linux 终端操作命令 也称Shell命令&#xff0c;是用户与操作系统内核进行交互的命令解释器&#xff0c;它接收用户输入的命令并将其传递给操作系统进行执行&#xff0c;可分为内部命令和外部命令。内部命令是Shell程序的一部分&#xff0c;而外部命令是独立于Shell的可执行程序…

【前端 | CSS】align-items与align-content的区别

align-items 描述 CSS align-items 属性将所有直接子节点上的 align-self 值设置为一个组。align-self 属性设置项目在其包含块中在交叉轴方向上的对齐方式 align-items是针对每一个子项起作用&#xff0c;它的基本单位是每一个子项&#xff0c;在所有情况下都有效果&…

并行FIR滤波器

FIR 滤波器原理 FIR 滤波器是有限长单位冲击响应滤波器&#xff0c;又称为非递归型滤波器。FIR 滤波器具有严格的线性相频特性&#xff0c;同时其单位响应是有限长的&#xff0c;因而是稳定的系统。 FIR 滤波器本质上就是输入信号与单位冲击响应函数的卷积&#xff0c;表达式…

【马蹄集】第二十二周——进位制与字符串专题

进位制与字符串专题 目录 MT2179 01操作MT2182 新十六进制MT2172 萨卡兹人MT2173 回文串等级MT2175 五彩斑斓的串 MT2179 01操作 难度&#xff1a;黄金    时间限制&#xff1a;1秒    占用内存&#xff1a;128M 题目描述 刚学二进制的小码哥对加减乘除还不熟&#xff0c;他…

剑指 Offer 61. 扑克牌中的顺子

题目描述 从若干副扑克牌中随机抽 5 张牌&#xff0c;判断是不是一个顺子&#xff0c;即这5张牌是不是连续的。2&#xff5e;10为数字本身&#xff0c;A为1&#xff0c;J为11&#xff0c;Q为12&#xff0c;K为13&#xff0c;而大、小王为 0 &#xff0c;可以看成任意数字。A 不…

Tubi 前端测试:迁移 Enzyme 到 React Testing Library

前端技术发展迅速&#xff0c;即便不说是日新月异&#xff0c;每年也都推出新框架和新技术。Tubi 的产品前端代码仓库始建于 2015 年&#xff0c;至今 8 年有余。可喜的是&#xff0c;多年来紧随 React 社区的发展&#xff0c;Tubi 绝大多数的基础框架选型都遵循了社区流行的最…

翻转二叉树

声明 该系列文章仅仅展示个人的解题思路和分析过程&#xff0c;并非一定是优质题解&#xff0c;重要的是通过分析和解决问题能让我们逐渐熟练和成长&#xff0c;从新手到大佬离不开一个磨练的过程&#xff0c;加油&#xff01; 原题链接 翻转二叉树备战技术面试&#xff1f;…