2017-04-05 8 views
1

"DateInput"클래스의 멤버 변수 "dateOfJoining"(날짜 유형)에 dateOfJoining 값 (문자열 유형)을 바인딩하는 방법 우체부를 통해 JSON 아래로 보냅니다. 동일한 형식의 dd/MM/yyyy로 Java에서 String을 Date 객체로 변환하는 방법. 변환 된 날짜는 Date 객체에 있어야하지만 String은 없어야합니다. 자바에서 로컬 호스트/휴식/안녕하세요날짜 남자를 받아들이는 Java에 json date (문자열 형식)를 보내는 방법

RestService 클래스 - -

JSON은

{ 
"dateOfJoining" : "03/04/2017" 
} 

서비스 URL 우편 배달부에 타격 아래에 주어진대로 HandleRestRequest.java

@RestController 
public class HandleRestRequest 
{ 

    @RequestMapping("\hello"); 
    public List setRequestParams(@RequestBody DateInput dateInput) 
{ 
    ....... 
    } 
} 

Pojo Class DateInput.java 

    public class DateInput 
{ 
    private Date dateOfJoining; 
    ....... 
    } 

를 내가 보내는 경우 아래 형식의 json 날짜, 불만족 입력으로 던지는 오류

{ 
    "dateOfJoining" : 04/04/2017 
} 

그래서 문자열 형식으로하고 DateInput.java 파일에 문자열로 dateOfJoining을 변경하여 전송하고 나중에 내가 문자열

에 날짜에서

수정 아래 DateInput.java 파일로 날짜 개체로 변환하려고 최신으로 문자열에서 사용자 입력을 변환 JSON

{ 
"dateOfJoining" : "04/04/2017" 
} 

코드를 수정

public class DateInput 
{ 
    private String dateOfJoining; 
    ....... 
} 

DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 
    String convertedDate = sdf.format(dateInput.getDateOfJoining()); 

필요한 형식으로 변환하지만 반환 형식은 String이지만 DAO 계층을 보낼 Date 개체가 있어야합니다. 그래서 나는 그것의 필요한 형식으로 Date 객체를 반환하지만, sdf.parse 시도

Date date = sdf.parse(sdf.format(dateInput.getDateOfJoining())); 
output is like - Tue Apr 04 00:00:00 IST 2017 
expected is 04/04/2017 (with return type Date object). 

어떻게 DAO 층부터 필요한 형식과 날짜 개체에 문자열을 변환하는 형식 DD 날짜 개체로 입력을 기대하고 저를 도와주세요/MM/yyyy

+0

문자열을 입력으로 받아 들여서 순간으로 변환 하시려면 – cYrixmorten

답변

3

편집 : 업데이트 된 질문에 따라 답변을 업데이트하십시오.

@JsonFormat에서 Jackson Databind까지 주석을 사용하여 날짜 패턴을 지정하십시오.

public class DateInput 
{ 
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="dd-MM-yyyy") 
    private Date dateOfJoining; 
    ....... 
    } 
+0

죄송합니다. 질문을 계속하기 위해 @RequestBody를 놓쳤습니다. 이제 질문을 업데이트했습니다 –

+0

하지만 내 프로젝트에는 Jackson Databind가 없습니다. 이 경우 어떻게해야할까요? –

+0

종속성을 추가하십시오. '@ RestController' 을 사용하려면 스프링 의존성을 추가해야합니다. 같은 방법으로 이것을 추가하십시오. –