[SpringBoot]차단기 가 날짜 변환 을 실현 합 니 다.

11023 단어 JavaWebDeveloperManual
글 목록
  • 서문
  • 장비
  • Core-Code
  • 날짜 변환 클래스
  • 날짜 변환 차단기
  • Github
  • 저자
  • 머리말
    ■마이크로 서비스 관련 글 업데이트 준비...빅 데이터 업데이트 뒤로
    일단 SpringBoot 자체 의 기능 을 알 아 보도 록 하 겠 습 니 다.
  • 날짜 변환 입력==>주석@DateTimeFormat(pattern="yyy-MM-dd HH:mm:ss")을 사용 하고 application.yml
  • 을 설정 합 니 다.
  • Response 의 Date 를 되 돌려 주 는 주석=>@JSonFormat(pattern="yyy-MM-dd HH:mm:ss")을 사용 하고 application.yml
      jackson:
        time-zone: GMT+8
        date-format: yyyy-MM-dd HH:mm:ss
    
  • 을 설정 합 니 다.
    하지만 솔직히 말 해서 저 는 소 용이 없 는 상황 을 만 났 습 니 다.특히 swaggerUI 로 테스트 할 때 저 는 개인 적 으로 게 을 러 서 차단기 로 자동 으로 날 짜 를 바 꾸 면 됩 니 다.
    장비.
  • SpringBoot2.x

  • Core-Code
    날짜 변환 클래스
  • 도입 주의:import org.springframework.core.convert.converter.Converter;
  • import lombok.extern.slf4j.Slf4j;
    import org.springframework.core.convert.converter.Converter;
    import org.springframework.util.StringUtils;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    /**
     * DateConverter
     * 
     * Description:     
     * 
     * Creation Time: 2018/11/24 12:44.
     *
     * @author Hu Weihui
     */
    @Slf4j
    public class DateConverter implements Converter<String,Date> {
    
        private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
    
    
        @Override
        public Date convert(String source) {
            if(StringUtils.isEmpty(source)) {
                return null;
            }
            try{
                source = source.trim();
                if (source.contains(":")){
                    SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT);
                    return formatter.parse(source);
                }
                else if(source.matches("^\\d+$")){
                    Long time = Long.valueOf(source);
                    return new Date(time);
                }
            } catch (ParseException e) {
                log.info("[DateConverter] convert date parseException ",e );
            }
            log.info("[DateConverter] not match timestamp or date ");
            return null;
        }
    }
    

    날짜 변환 차단기
    /**
     * WebConfig
     * 
     * Description:             
     * 
     * Creation Time: 2018/11/24 12:38.
     *
     * @author Hu Weihui
     */
    @Configuration
    @Slf4j
    public class WebConfig implements WebMvcConfigurer {
    
        @Autowired
        private RequestMappingHandlerAdapter handlerAdapter;
    
    
        @PostConstruct
        public void initEditableAvlidation() {
    
            ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) handlerAdapter.getWebBindingInitializer();
            if (initializer.getConversionService() != null) {
                GenericConversionService genericConversionService = (GenericConversionService) initializer.getConversionService();
                genericConversionService.addConverter(new DateConverter());
            }
        }
     
    }
    
    

    Github
    https://github.com/ithuhui/hui-base-java
    [hui-base-common]아래 에 있 는 com.hui.base.comon.convert.
    저자.
       :HuHui
       :      web      ,            ,  
    

    좋은 웹페이지 즐겨찾기