DateUti.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package com.cyzh.repeater.utils;
  2. import cn.hutool.core.convert.Convert;
  3. import cn.hutool.core.date.DateUtil;
  4. import cn.hutool.core.util.StrUtil;
  5. import org.apache.log4j.Logger;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. public class DateUti {
  9. private static final Logger logger = Logger.getLogger(DateUti.class);
  10. /**
  11. * 比较开始时间和结束时间
  12. * @param sDate
  13. * @param eDate
  14. * @return
  15. */
  16. public static Map<String, Object> dateCompare(String sDate, String eDate){
  17. Map<String, Object> map = new HashMap<>();
  18. String date = formatDate(eDate);
  19. if(StrUtil.isBlank(date)){
  20. map.put("isOk", false);
  21. map.put("errMsg", "结束时间格式有误");
  22. return map;
  23. }
  24. if(isBigCurrentDate(date)){
  25. map.put("isOk", false);
  26. map.put("errMsg", "结束时间要大于当前时间");
  27. return map;
  28. }
  29. String keyStartDate = formatDate(sDate);
  30. if(StrUtil.isBlank(keyStartDate)){
  31. map.put("isOk", false);
  32. map.put("errMsg", "开始时间格式有误");
  33. return map;
  34. }
  35. if(Convert.toLong(keyStartDate) >= Convert.toLong(date)){
  36. map.put("isOk", false);
  37. map.put("errMsg", "结束时间要大于开始时间");
  38. return map;
  39. }
  40. map.put("isOk", true);
  41. map.put("errMsg", "");
  42. map.put("startDate", keyStartDate);
  43. map.put("endDate", date);
  44. return map;
  45. }
  46. /**
  47. * 格式化日期,格式:yyyyMMddHHmmss
  48. * @param date
  49. * @return
  50. */
  51. public static String formatDate(String date){
  52. try {
  53. return DateUtil.format(DateUtil.parse(date), "yyyyMMddHHmmss");
  54. }catch (Exception e){
  55. logger.error("格式化yyyyMMddHHmmss异常:", e);
  56. return null;
  57. }
  58. }
  59. /**
  60. * 日期是否大于当前时间
  61. * @param date 比较的时间
  62. * @return true:大于,false 小于
  63. */
  64. public static boolean isBigCurrentDate(String date){
  65. String currentDate = DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss");
  66. date = DateUtil.format(DateUtil.parse(date), "yyyyMMddHHmmss");
  67. if(Convert.toLong(currentDate) > Convert.toLong(date)){
  68. return true;
  69. }
  70. return false;
  71. }
  72. public static void main(String[] args) {
  73. dateCompare("2017-04-01 23:33:23", "2021-04-01 23:33:23");
  74. }
  75. }