mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	update 优化日期与字符串工具类
This commit is contained in:
		@@ -175,14 +175,27 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 计算两个日期之间的天数差(以毫秒为单位)
 | 
					     * 计算两个时间之间的时间差,并以指定单位返回(绝对值)
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param date1 第一个日期
 | 
					     * @param start 起始时间
 | 
				
			||||||
     * @param date2 第二个日期
 | 
					     * @param end   结束时间
 | 
				
			||||||
     * @return 两个日期之间的天数差的绝对值
 | 
					     * @param unit  所需返回的时间单位(DAYS、HOURS、MINUTES、SECONDS、MILLISECONDS、MICROSECONDS、NANOSECONDS)
 | 
				
			||||||
 | 
					     * @return 时间差的绝对值,以指定单位表示
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static int differentDaysByMillisecond(Date date1, Date date2) {
 | 
					    public static long difference(Date start, Date end, TimeUnit unit) {
 | 
				
			||||||
        return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24)));
 | 
					        // 计算时间差,单位为毫秒,取绝对值避免负数
 | 
				
			||||||
 | 
					        long diffInMillis = Math.abs(end.getTime() - start.getTime());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 根据目标单位转换时间差
 | 
				
			||||||
 | 
					        return switch (unit) {
 | 
				
			||||||
 | 
					            case DAYS -> diffInMillis / TimeUnit.DAYS.toMillis(1);
 | 
				
			||||||
 | 
					            case HOURS -> diffInMillis / TimeUnit.HOURS.toMillis(1);
 | 
				
			||||||
 | 
					            case MINUTES -> diffInMillis / TimeUnit.MINUTES.toMillis(1);
 | 
				
			||||||
 | 
					            case SECONDS -> diffInMillis / TimeUnit.SECONDS.toMillis(1);
 | 
				
			||||||
 | 
					            case MILLISECONDS -> diffInMillis;
 | 
				
			||||||
 | 
					            case MICROSECONDS -> TimeUnit.MILLISECONDS.toMicros(diffInMillis);
 | 
				
			||||||
 | 
					            case NANOSECONDS -> TimeUnit.MILLISECONDS.toNanos(diffInMillis);
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ import cn.hutool.core.lang.Validator;
 | 
				
			|||||||
import cn.hutool.core.util.StrUtil;
 | 
					import cn.hutool.core.util.StrUtil;
 | 
				
			||||||
import org.springframework.util.AntPathMatcher;
 | 
					import org.springframework.util.AntPathMatcher;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.nio.charset.Charset;
 | 
				
			||||||
import java.util.*;
 | 
					import java.util.*;
 | 
				
			||||||
import java.util.function.Function;
 | 
					import java.util.function.Function;
 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
@@ -339,4 +340,26 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
 | 
				
			|||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 将字符串从源字符集转换为目标字符集
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param input       原始字符串
 | 
				
			||||||
 | 
					     * @param fromCharset 源字符集
 | 
				
			||||||
 | 
					     * @param toCharset   目标字符集
 | 
				
			||||||
 | 
					     * @return 转换后的字符串
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static String convert(String input, Charset fromCharset, Charset toCharset) {
 | 
				
			||||||
 | 
					        if (isBlank(input)) {
 | 
				
			||||||
 | 
					            return input;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            // 从源字符集获取字节
 | 
				
			||||||
 | 
					            byte[] bytes = input.getBytes(fromCharset);
 | 
				
			||||||
 | 
					            // 使用目标字符集解码
 | 
				
			||||||
 | 
					            return new String(bytes, toCharset);
 | 
				
			||||||
 | 
					        } catch (Exception e) {
 | 
				
			||||||
 | 
					            return input;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user