您可以將日期轉換爲您希望用於您的JSON響應的任何格式。
對於您的情況,您一直使用java.util.Date
類型字段的默認JSON日期變換器。這基本上是由Spring Roo爲您生成的。看看你的* _Roo_Json方面,你會發現smth。像這樣:
public java.lang.String PizzaOrder.toJson() {
return new JSONSerializer().exclude("*.class").serialize(this);
}
這樣的實現使用flexjson.transformer.BasicDateTransformer
類來爲您轉換日期。它是這樣實現的:
public class BasicDateTransformer extends AbstractTransformer {
public void transform(Object object) {
getContext().write(String.valueOf(((Date) object).getTime()));
}
}
你想要的是使用一個不同的,更強大的變壓器。幸運的是它帶着你的Roo,叫做flexjson.transformer.DateTransformer
。現在,爲了正確設置日期格式,只需使用新變換器替換默認值即可。像這樣:
public java.lang.String PizzaOrder.toJson() {
return new JSONSerializer().exclude("*.class")
.transform(new DateTransformer("MM/dd/yyyy"), Date.class)
.serialize(this);
}
這一切:-)
知道,你也可能適用不同的Date
(而不是隻)轉換爲不同的領域是這樣的:
transform(new DateTransformer("MM/dd/yyyy"), "person.birthday")
有關更多信息flexjson看看FLEXJSON project page。
也許不是你的情況,但...轉換和表示日期應該在視圖/輸入層(瀏覽器或選擇的視圖技術:JSP,JSF ...)上完成。這是因爲您通常需要考慮用戶時區和區域設置來呈現它們。因此,您需要考慮在您的控制器中提供本地化的AJAX結果......或者在客戶端執行。 – jjmontes