当前位置: 首页 > news >正文

DateUtil工具类记录

为支持日常工作需要,记录所用到的一些关于时间的工具类方法。随时进行补充。

/*** Description:获取两个日期之间的天数差* @Author:hanyq* @Date:2023/9/19 11:23*/public static int getDateDifference(Date startDate,Date endDate){int days = 0;try {Calendar startCalendar = Calendar.getInstance();startCalendar.setTime(startDate);Calendar endCalendar = Calendar.getInstance();endCalendar.setTime(endDate);//计算两个日期相差的天数//startCalendar.getTime().getTime()返回long毫秒数形式,毫秒转为秒所以除以1000//1天=24小时,1小时=60分,1分=60秒,所以两个时间的差再除以60 * 60 * 24换算成天的形式days = ((int) (startCalendar.getTime().getTime() / 1000) - (int) (endCalendar.getTime().getTime() / 1000)) / (60 * 60 * 24);} catch (Exception e) {e.printStackTrace();}return days;}/*** 比较两个时间大小(当时间A大于等于时间B时会返回false;反之时间A小于时间B时会返回true)* @param startDate 时间A* @param endDate   时间B* @return*/public static Boolean compareDate(Date startDate,Date endDate){Boolean result = false;SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");try {result = startDate.after(endDate);} catch (Exception e) {e.printStackTrace();}return result;}/*** 获取当前日期对应的一周的开始日期* @param date* @return*/public static Calendar getFirstDayOfWeek(Date date){Calendar result = null;try{Calendar calendarIndex = Calendar.getInstance();calendarIndex.setTime(date);//先判断该日期是否是周日,如果是的话将其减一(西方周六为一周结束,而我们以周日为一周结束)LocalDate weekHandle = LocalDate.of(calendarIndex.get(Calendar.YEAR), calendarIndex.get(Calendar.MONTH) + 1, calendarIndex.get(Calendar.DATE));int week = weekHandle.getDayOfWeek().getValue();Calendar calendar = Calendar.getInstance();calendar.setTime(date);if (week == 7){calendar.add(Calendar.DAY_OF_MONTH, -1);}calendar.set(Calendar.DAY_OF_WEEK, calendar.getActualMinimum(Calendar.DAY_OF_WEEK));calendar.add(Calendar.DAY_OF_MONTH, 1);result = calendar;}catch (Exception e){e.printStackTrace();}finally {return result;}}/*** 获取当前日期对应的一周的结束日期* @param date* @return*/public static Calendar getLastDayOfWeek(Date date){Calendar result = null;try{Calendar calendarIndex = Calendar.getInstance();calendarIndex.setTime(date);//先判断该日期是否是周日,如果是的话将其减一(西方周六为一周结束,而我们以周日为一周结束)LocalDate weekHandle = LocalDate.of(calendarIndex.get(Calendar.YEAR), calendarIndex.get(Calendar.MONTH) + 1, calendarIndex.get(Calendar.DATE));int week = weekHandle.getDayOfWeek().getValue();Calendar calendar = Calendar.getInstance();calendar.setTime(date);if (week == 7){calendar.add(Calendar.DAY_OF_MONTH, -1);}calendar.set(Calendar.DAY_OF_WEEK, calendar.getActualMaximum(Calendar.DAY_OF_WEEK));calendar.add(Calendar.DAY_OF_MONTH, 1);result = calendar;}catch (Exception e){e.printStackTrace();}finally {return result;}}/*** Description:获取当时间所属月份开始时间* @Author:hanyq* @Date:2023/10/17 17:39*/public static Calendar getFirstDayOfMonth(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_MONTH, 1);return calendar;}/*** Description:获取当时间所属月份结束时间* @Author:hanyq* @Date:2023/10/17 17:39*/public static Calendar getLastDayOfMonth(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));return calendar;}/*** Description:获取当时间所属年份开始时间* @Author:hanyq* @Date:2023/10/17 17:50*/public static Calendar getFirstDayOfYear(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_YEAR, 1);return calendar;}/*** Description:获取当时间所属年份结束时间* @Author:hanyq* @Date:2023/10/17 17:50*/public static Calendar getLastDayOfYear(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMaximum(Calendar.DAY_OF_YEAR));return calendar;}
http://www.lryc.cn/news/196616.html

相关文章:

  • 可信执行环境简介:ARM 的 TrustZone
  • 【音视频流媒体】 3、ffmpeg、ffplay、ffprobe 超详细介绍
  • 解决kong部署自定义插件报 helloworld plugin is enabled but not installed
  • 动态数据源自定义SqlSessionFactoryBean时mybatis plus配置失效
  • 【Qt控件之QDialogButtonBox】概述及使用
  • IPv6知识概述 - ND协议
  • react-redux的connect函数实现
  • Vue3使用Vite创建项目
  • NCV7724DQBR2G车规级半桥电机驱动芯片-专为汽车,工业自动化应用提供完美解决方案
  • NSS [GWCTF 2019]枯燥的抽奖
  • 微信小程序会议OA系统
  • CICD:Circle CI 实现CICD
  • 竞赛 深度学习YOLO安检管制物品识别与检测 - python opencv
  • 【华为OD机试python】斗地主之顺子【2023 B卷|100分】
  • ant design DatePicker禁用之前的时间
  • C语言---预处理详解
  • 数组和对象有什么区别?
  • 顺序表(第二节)实现和解析
  • Hadoop3教程(二十一):MapReduce中的压缩
  • 04、RocketMQ -- 核心基础使用
  • mysql中date/datetime类型自动转go的时间类型time.Time
  • MATLAB算法实战应用案例精讲-【图像处理】机器视觉(基础篇)
  • LDAP协议工作原理
  • 【Jetpack Compose】BOM是什么?
  • 多域名SSL数字证书是什么呢
  • 杭电oj--求奇数的乘积
  • E053-web安全应用-Brute force暴力破解初级
  • 外汇天眼;VT Markets 赞助玛莎拉蒂MSG Racing电动方程式世界锦标赛
  • 使用vscode + vite + vue3+ element3 搭建vue3脚手架
  • 竞赛 深度学习+opencv+python实现车道线检测 - 自动驾驶