前端传参Date类型参数进行统一转换

时间:2025-04-09 08:32:22
/** * 日期 */ public class DateEditor extends PropertyEditorSupport { /** * 默认的日期格式 */ private static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; /** * 能够进行转换的日期格式 */ public static final String[] DATE_PATTERNS = new String[] { "yyyy", "yyyy-MM", "yyyyMM", "yyyy/MM", "yyyy-MM-dd", "yyyyMMdd", "yyyy/MM/dd", "yyyy-MM-dd HH:mm:ss", "yyyyMMddHHmmss", "yyyy/MM/dd HH:mm:ss" }; /** * 是否将空转换为null */ private boolean emptyAsNull; /** * 日期格式 */ private String dateFormat = DEFAULT_DATE_FORMAT; public DateEditor(boolean emptyAsNull) { this.emptyAsNull = emptyAsNull; } public DateEditor(boolean emptyAsNull, String dateFormat) { this.emptyAsNull = emptyAsNull; this.dateFormat = dateFormat; } /** * 获取日期 */ @Override public String getAsText() { Date value = (Date) getValue(); return value != null ? DateFormatUtils.format(value, dateFormat) : StringUtils.EMPTY; } /** * 设置日期 */ @Override public void setAsText(String text) { if (text != null) { String value = text.trim(); if (emptyAsNull && StringUtils.isEmpty(text)) { setValue(null); } else { try { setValue(DateUtils.parseDate(value, DATE_PATTERNS)); } catch (ParseException e) { setValue(null); } } } else { setValue(null); } } }