• DateUtil工具类记录


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

    1. /**
    2. * Description:获取两个日期之间的天数差
    3. * @Author:hanyq
    4. * @Date:2023/9/19 11:23
    5. */
    6. public static int getDateDifference(Date startDate,Date endDate){
    7. int days = 0;
    8. try {
    9. Calendar startCalendar = Calendar.getInstance();
    10. startCalendar.setTime(startDate);
    11. Calendar endCalendar = Calendar.getInstance();
    12. endCalendar.setTime(endDate);
    13. //计算两个日期相差的天数
    14. //startCalendar.getTime().getTime()返回long毫秒数形式,毫秒转为秒所以除以1000
    15. //1天=24小时,1小时=60分,1分=60秒,所以两个时间的差再除以60 * 60 * 24换算成天的形式
    16. days = ((int) (startCalendar.getTime().getTime() / 1000) - (int) (endCalendar.getTime().getTime() / 1000)) / (60 * 60 * 24);
    17. } catch (Exception e) {
    18. e.printStackTrace();
    19. }
    20. return days;
    21. }
    22. /**
    23. * 比较两个时间大小(当时间A大于等于时间B时会返回false;反之时间A小于时间B时会返回true)
    24. * @param startDate 时间A
    25. * @param endDate 时间B
    26. * @return
    27. */
    28. public static Boolean compareDate(Date startDate,Date endDate){
    29. Boolean result = false;
    30. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    31. try {
    32. result = startDate.after(endDate);
    33. } catch (Exception e) {
    34. e.printStackTrace();
    35. }
    36. return result;
    37. }
    38. /**
    39. * 获取当前日期对应的一周的开始日期
    40. * @param date
    41. * @return
    42. */
    43. public static Calendar getFirstDayOfWeek(Date date){
    44. Calendar result = null;
    45. try{
    46. Calendar calendarIndex = Calendar.getInstance();
    47. calendarIndex.setTime(date);
    48. //先判断该日期是否是周日,如果是的话将其减一(西方周六为一周结束,而我们以周日为一周结束)
    49. LocalDate weekHandle = LocalDate.of(calendarIndex.get(Calendar.YEAR), calendarIndex.get(Calendar.MONTH) + 1, calendarIndex.get(Calendar.DATE));
    50. int week = weekHandle.getDayOfWeek().getValue();
    51. Calendar calendar = Calendar.getInstance();
    52. calendar.setTime(date);
    53. if (week == 7){
    54. calendar.add(Calendar.DAY_OF_MONTH, -1);
    55. }
    56. calendar.set(Calendar.DAY_OF_WEEK, calendar.getActualMinimum(Calendar.DAY_OF_WEEK));
    57. calendar.add(Calendar.DAY_OF_MONTH, 1);
    58. result = calendar;
    59. }catch (Exception e){
    60. e.printStackTrace();
    61. }finally {
    62. return result;
    63. }
    64. }
    65. /**
    66. * 获取当前日期对应的一周的结束日期
    67. * @param date
    68. * @return
    69. */
    70. public static Calendar getLastDayOfWeek(Date date){
    71. Calendar result = null;
    72. try{
    73. Calendar calendarIndex = Calendar.getInstance();
    74. calendarIndex.setTime(date);
    75. //先判断该日期是否是周日,如果是的话将其减一(西方周六为一周结束,而我们以周日为一周结束)
    76. LocalDate weekHandle = LocalDate.of(calendarIndex.get(Calendar.YEAR), calendarIndex.get(Calendar.MONTH) + 1, calendarIndex.get(Calendar.DATE));
    77. int week = weekHandle.getDayOfWeek().getValue();
    78. Calendar calendar = Calendar.getInstance();
    79. calendar.setTime(date);
    80. if (week == 7){
    81. calendar.add(Calendar.DAY_OF_MONTH, -1);
    82. }
    83. calendar.set(Calendar.DAY_OF_WEEK, calendar.getActualMaximum(Calendar.DAY_OF_WEEK));
    84. calendar.add(Calendar.DAY_OF_MONTH, 1);
    85. result = calendar;
    86. }catch (Exception e){
    87. e.printStackTrace();
    88. }finally {
    89. return result;
    90. }
    91. }
    92. /**
    93. * Description:获取当时间所属月份开始时间
    94. * @Author:hanyq
    95. * @Date:2023/10/17 17:39
    96. */
    97. public static Calendar getFirstDayOfMonth(Date date) {
    98. Calendar calendar = Calendar.getInstance();
    99. calendar.setTime(date);
    100. calendar.set(Calendar.DAY_OF_MONTH, 1);
    101. return calendar;
    102. }
    103. /**
    104. * Description:获取当时间所属月份结束时间
    105. * @Author:hanyq
    106. * @Date:2023/10/17 17:39
    107. */
    108. public static Calendar getLastDayOfMonth(Date date) {
    109. Calendar calendar = Calendar.getInstance();
    110. calendar.setTime(date);
    111. calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
    112. return calendar;
    113. }
    114. /**
    115. * Description:获取当时间所属年份开始时间
    116. * @Author:hanyq
    117. * @Date:2023/10/17 17:50
    118. */
    119. public static Calendar getFirstDayOfYear(Date date) {
    120. Calendar calendar = Calendar.getInstance();
    121. calendar.setTime(date);
    122. calendar.set(Calendar.DAY_OF_YEAR, 1);
    123. return calendar;
    124. }
    125. /**
    126. * Description:获取当时间所属年份结束时间
    127. * @Author:hanyq
    128. * @Date:2023/10/17 17:50
    129. */
    130. public static Calendar getLastDayOfYear(Date date) {
    131. Calendar calendar = Calendar.getInstance();
    132. calendar.setTime(date);
    133. calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMaximum(Calendar.DAY_OF_YEAR));
    134. return calendar;
    135. }
  • 相关阅读:
    【外刊】睡眠与减肥
    internship:接口案例实现
    java8特性,lambda表达式,简写的演变及应用
    卷积神经网络预测数据值,一维卷积神经网络 keras
    痞子衡嵌入式:聊聊i.MXRT1xxx上第三级启动保障 - SDMMC manufacture模式
    stm32逆向入门
    vue3接口、数据懒加载,回滚不重复加载
    C++指针和引用
    「前端+鸿蒙」鸿蒙应用开发-ArkTS语法说明-组件声明
    [Android]修改XML中定义的约束比例
  • 原文地址:https://blog.csdn.net/weixin_51296247/article/details/133889927