2016-11-23 2 views
1

저는 private java.sql.Timestamp myDate;
일부 모델 (POJO) 클래스에 있습니다. 그것을 (잭슨에 의해) 다음과 같이 변환 할 수 있습니까?
Wed, 23 Nov 2016 20:37:09 GMT
?
나는 @JsonProperty과 같은 것을 사용할 수 있다는 것을 알고 있지만, 나는이 형식을 다룰 수 없다. 또한 JSON을 전송할뿐만 아니라 동일한 JSON을 수신한다는 사실을 명심하십시오.
미리 감사드립니다.java.sql.timestamp를 Json 형식으로 변환합니다.

+1

기본적으로 자바 타임 스탬프를 json 속성 중 하나의 값으로 사용되는 형식이 지정된 문자열로 변환하려고합니다. 권리 ? –

+1

Date 개체의 서식을 지정하려고 했습니까 ??? –

+0

문제는 내가 봄의 자동 메커니즘을 사용한다는 것입니다. ResponseBody (jackson 및 다른 유사한 이야기) –

답변

-1

다음과 같은 형식을

SimpleDateFormat의 자위대 = 새로운하여 SimpleDateFormat을 사용하여 타임 스탬프를 변환 ("E, MMM yyyy로의 HH를 위해 dd : MM : SS의 Z");

샘플 코드는 다음과 같습니다

Timestamp ts = new Timestamp(new Date().getTime()); 

     System.out.println(ts); 

     SimpleDateFormat sdf = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z"); 
     System.out.println(sdf.format(ts)); 

당신은 당신의 타임 스탬프 필드에 대한 사용자 지정 serializer를 추가 할 수 있습니다

2016-11-23 15:55:22.291 
Wed, 23 Nov 2016 15:55:22 EST 
2

을 인쇄합니다. POJO에 변수에 @JsonSerialize를 추가보다

public class JsonDateSerializer extends JsonSerializer<Timestamp> { 
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z"); 

    @Override 
    public void serialize(Timestamp arg0, JsonGenerator arg1, SerializerProvider arg2) 
      throws IOException, JsonProcessingException { 
     String formattedDate = dateFormat.format(arg0); 
     arg1.writeString(formattedDate); 

    } 

} 

,이처럼 직렬화 그 후

@JsonSerialize(using = JsonDateSerializer.class) 
    public Timestamp timestamp; 

:
ObjectMapper 매퍼 = 새로운 ObjectMapper();
mapper.writeValueAsString (// 여기에 귀하의 OBJECT //);

는이 같은 얻을 것이다 :

{"timestamp":"Tue, 6 Dec 2016 19:06:33 IST"} 

를 그리고 이것이 당신의 POJO에 타임 스탬프 필드에 JSON을 통과 다시 역 직렬화됩니다.

관련 문제