2012-11-12 172 views
0

請有人幫我在這將Java日期JSON日期

我有一個簡單的Date對象,如:

Date dt = new Date(); 

我想把它轉換成JSON日期格式,如:

"\/Date(928164000000-0400)\/" 

如何做到這一點。

+0

可能重複? http://stackoverflow.com/questions/10334716/how-to-convert-string-in-java-to-json – Luke94

+0

試試這個http://forums.asp.net/t/1807303.aspx/1 –

回答

3

使用

Date dt = new Date(); 
"\/Date(" + dt.getTime() + "-0400)\/" 

你可能需要先解析的getTime(),根據您當前的日期格式是什麼。

1

這是使用com.google.gson。*

final JsonSerializer<Date> dateSerialize = new JsonSerializer<Date>() 
    { 

     @Override 
     public JsonElement serialize(final Date src, 
       final Type typeOfSrc, 
       final JsonSerializationContext context) 
     { 
      final String dateString = "Date(" + src.getTime() + "-" + src.getTimezoneOffset()+")"; 
      return new JsonPrimitive(dateString); 

     } 

    }; 

Gson gson = GsonBuilder().registerTypeAdapter(Date.class, dateSerialize)     
      .create(); 

Date dt = new Date();* 

gson.toJson(dt); 
1

是不是真的在JSON日期格式,只有一些沒有國際公約。

這是說,你的「約會」由兩個部分組成:

  • 一些,因爲毫秒爲單位的。您可以使用的getTime()方法
  • 時區偏移量

但是一個java Date(違背一個calendar)在UTC得到這個,就像一個JavaScript的一個,不包含時間偏移(已棄用getTimezoneOffset())。所以你必須決定你想使用哪一個。或者,您也可以像我一樣發送帶有零偏移量的UTC時間戳:

var jsonDateUTC = "Date("+javaDate.getTime()+"-0000)";