날짜를 구하는 방법 SpringMVC 유형의 요청 매개 변수를 가져옵니다 - @DateTimeFormat을

Date 형의 매개 변수를 얻기 위해 요청을 얻는 방법

배경

. 코드 검토 오늘, 나는 날짜 타입으로 코드를 변환하는 입력 한 다음 문자열의 통과와의 인터페이스 (가져 오기) 수신기 프론트 엔드의 일부를 입력으로 시간을 발견하고, 작은 문제를 발견
내 의문을 제기 : "이봐, 소년이 곳을 "왜 사용 문자열 수신이 시작 및 종료 시간
BOYA :"불평 문자열 날짜를 사용하지 않는 직접 아 당신은 문자열 "!? 필요합니까
boyB 무지가 다시 약간 비꼬는 추가하도록 강요 보면 :"어떻게이 오류를 가질 수 있을까? 날짜 양측은 직접 "숙련 된 프로젝트를 엽니 다 당신이 ... 참조 수신
보야 응답을 읽은 후"당신이, 아, 포스트와 쿼리 인터페이스는 GET, GET, GET 사용하는 나머지 아 스타일을 충족하지 않는 "!?
boyB ... 실패 방지 로딩 힘은 레벨이다.

먼저 우리는 Date 형 직접 요청이 발생 얻기받는 것을보고

다음은 배경 에러 로그 요청입니다

    @GetMapping("/v1/date/test_a")
    @ApiOperation(value = "/v1/date/test_a" , notes = "错误案例")
    @ApiImplicitParam(paramType = "query",name = "startTime", value = "时间[yyyy-MM-dd HH:mm:ss]", dataType = "Date",defaultValue = "2019-03-14 14:00:00")
    public Response<Date> dateA(@RequestParam("startTime") Date startTime){
        return ResponseUtil.getSuccessResponse(startTime);
    }


@DateTimeFormat

그럼이 블로그 주인공 연주, 사용 :
@DateTimeFormat (패턴 = "YYYY-MM-DD")
@DateTimeFormat (패턴 = "는 : mm SS HH YYYY-MM은-DD")
@DateTimeFormat (ISO = DateTimeFormat.ISO을 .date)
의 선단에 송신 포맷을 지정
하는 코드 데모 :

    @GetMapping("/v1/date/test_b")
    @ApiOperation(value = "/v1/date/test_b" , notes = "成功案例 Date [yyyy-MM-dd]")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "startDate", value = "时间[yyyy-MM-dd]", dataType = "Date", defaultValue = "2019-03-14"),
            @ApiImplicitParam(paramType = "query", name = "endDate", value = "时间[yyyy-MM-dd]", dataType = "Date", defaultValue = "2019-03-15")
    })
    public Response<String[]> dateB(@RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
                                           @RequestParam("endDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)  Date endDate){
        return ResponseUtil.getSuccessResponse(new String[]{DateUtils.parseDate(startDate,DateUtils.YYYY_MM_DD),DateUtils.parseDate(endDate,DateUtils.YYYY_MM_DD)});
    }

    @GetMapping("/v1/date/test_c")
    @ApiOperation(value = "/v1/date/test_c" , notes = "成功案例 DateTime [yyyy-MM-dd HH:mm:ss]")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "startDate", value = "时间[yyyy-MM-dd HH:mm:ss]", dataType = "Date", defaultValue = "2019-03-14 14:00:00"),
            @ApiImplicitParam(paramType = "query", name = "endDate", value = "时间[yyyy-MM-dd HH:mm:ss]", dataType = "Date", defaultValue = "2019-03-15 14:00:00")
    })
    public Response<String[]> dateC(@RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startDate,
                                           @RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endDate){
        return ResponseUtil.getSuccessResponse(new String[]{DateUtils.parseDate(startDate,"yyyy-MM-dd HH:mm:ss"),DateUtils.parseDate(endDate,"yyyy-MM-dd HH:mm:ss")});
    }

@DateTimeFormat 주석이 개체의 개체 클래스의 멤버 변수에 직접 기록 할 수 있습니다.

손에 마지막으로 보야 및 boyB 작업 함께 손

게시 18 개 원래 기사 · 원 찬양 45 · 전망 (110) 000 +

추천

출처blog.csdn.net/zhibo_lv/article/details/88552957