2016-11-23 62 views
1

私は private java.sql.Timestamp myDate;
いくつかのモデル(POJO)クラスでは、それを(ジャックソンによって)そのようなものに変換することは可能ですか:
Wed, 23 Nov 2016 20:37:09 GMT

私は@JsonPropertyのようなものを使うかもしれないと知っていますが、私はこのフォーマットを扱うことができません。さらに、私はJSONを送信するだけでなく、同じJSONを受け取ることを覚えておいてください。
ありがとうございます!java.sql.timestampをJson形式に変換する

+1

基本的には、javaのタイムスタンプをjsonプロパティの値として入る書式設定された文字列に変換します。右 ? –

+1

Dateオブジェクトの書式設定を試しましたか? –

+0

問題は、私がSpringの自動メカニズムを使用していることです。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)); 

は、あなたのタイムスタンプフィールドのためのカスタム・シリアライザを追加することができます

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を渡すバックデシリアライズされます。

関連する問題