diff --git a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/constant/SystemConstants.java b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/constant/SystemConstants.java index d7dfd04c6..e75eed41e 100644 --- a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/constant/SystemConstants.java +++ b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/constant/SystemConstants.java @@ -182,4 +182,20 @@ public interface SystemConstants { * 组名、场景名、空间ID通用正则 */ String REGEXP = "^[A-Za-z0-9_-]{1,64}$"; + + /** + * 长时间格式 + */ + String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; + + /** + * + */ + String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; + + /** + * 短时间格式 + */ + String YYYY_MM_DD = "yyyy-MM-dd"; + } diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/interceptor/SnailJobWebMvcConfigurerAdapter.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/interceptor/SnailJobWebMvcConfigurerAdapter.java index db4ef0d2d..419ebfac1 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/interceptor/SnailJobWebMvcConfigurerAdapter.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/interceptor/SnailJobWebMvcConfigurerAdapter.java @@ -1,14 +1,20 @@ package com.aizuda.snailjob.server.web.interceptor; +import cn.hutool.core.date.LocalDateTimeUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; +import org.springframework.format.FormatterRegistry; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import java.time.LocalDateTime; import java.util.List; +import static com.aizuda.snailjob.common.core.constant.SystemConstants.YYYY_MM_DD_HH_MM_SS; + /** * @author opensnail * @date 2022-03-06 @@ -41,4 +47,21 @@ public class SnailJobWebMvcConfigurerAdapter implements WebMvcConfigurer { public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/admin/**").addResourceLocations("classpath:/admin/"); } + + @Override + public void addFormatters(FormatterRegistry registry) { + registry.addConverter(new Converter() { + @Override + public LocalDateTime convert(String source) { + try { + // 尝试解析为时间戳 + Long timestamp = Long.valueOf(source); + return LocalDateTimeUtil.of(timestamp); + } catch (NumberFormatException ignore) { + return LocalDateTimeUtil.parse(source, YYYY_MM_DD_HH_MM_SS); + } + } + }); + } + }