2015-06-16 52 views
0

存儲在MySQL數據庫即將爲1434369708000在我的REST API響應時間戳「2015年6月15日13時01分48秒」顯示。如何處理以便響應也具有相同的格式。我正在使用Java,Hibernate,Restful WS和MySQL。MySQL的時間戳以秒顯示 - 如何在Java

實體:

private Date CreatedDateTime; 

@Column(name = "created_Date_Time", columnDefinition = "TIMESTAMP") 
public Date getCreatedDateTime() { 
    return createdDateTime; 
} 

public void setCreatedDateTime(Date createdDateTime) { 
    this.createdDateTime= createdDateTime; 
} 

JSON查看:

@JsonView({MessageView.class}) 
public Date getCreatedDateTime() { 
    if (device != null) { 
     return device.getCreatedDateTime(); 
    } 
    return null; 
} 

public void setCreatedDateTime(Date CurrentServerUTC) { 
    if (device != null) { 
     this.device.getCreatedDateTime(CurrentServerUTC); 
    } 
} 
+0

您是否使用傑克遜的序列化?如果是,哪個版本? – Reek

+0

是,使用傑克遜版本2.3.3 –

回答

0

http://fasterxml.github.io/jackson-annotations/javadoc/2.0.0/com/fasterxml/jackson/annotation/JsonFormat.html

在實體試圖用註釋CreatedDateTime:

@JsonFormat(pattern = "yyyy-MM-dd kk:mm:ss") 
private Date CreatedDateTime; 

仔細檢查儘管如此,我不是%100確定它是正確的。它與Java SimpleDatePattern字符串相同。

PS:非靜態字段名開始在Java小寫字母作爲一個慣例。

我寫了一個簡單的測試,以展示這個註解:

public class JacksonDateTest { 

    @Test 
    public void test() throws Exception { 

     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     ObjectMapper om = new ObjectMapper(); 

     om.writeValue(baos, new Sth()); 

     baos.write("\n Sth2 \n".getBytes()); 

     om.writeValue(baos, new Sth2()); 

     System.out.println(baos.toString()); 

     baos.close(); 
    } 


    public class Sth { 
     @JsonFormat(pattern = "yyyy-MM-dd kk:mm:ss") 
     Date creationDate = new Date(); 

     public Date getCreationDate() { 
      return creationDate; 
     } 

     public void setCreationDate(Date creationDate) { 
      this.creationDate = creationDate; 
     } 
    } 

    public class Sth2 { 
     Date creationDate = new Date(); 

     public Date getCreationDate() { 
      return creationDate; 
     } 

     public void setCreationDate(Date creationDate) { 
      this.creationDate = creationDate; 
     } 
    } 
} 

它的工作原理。而Sth2時被序列化爲

{"creationDate":"2015-06-16 16:09:06"} 

{"creationDate":1434470946137} 

必須有別的東西在你的代碼會錯STH序列化爲。

+0

這個沒有工作! PS:哎呀!急於隱藏我輸入大寫字母的實際名稱。 –

+0

@JavaJunky在工作中添加了一個顯示註釋的測試案例... – Reek

相關問題