From f51404bba09e6f0ed63358556a88db3bf28552f0 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Sun, 16 Jun 2024 10:45:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(sj=5F1.1.0-beta1):=20=E6=B7=BB=E5=8A=A0Str?= =?UTF-8?q?ing=3D>LocalDateTime=20Mvc=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/constant/SystemConstants.java | 16 +++++++++++++ .../SnailJobWebMvcConfigurerAdapter.java | 23 +++++++++++++++++++ 2 files changed, 39 insertions(+) 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); + } + } + }); + } + }