これについて誰か助けてください
次のような単純な Date オブジェクトがあります。
Date dt = new Date();
次のようなjson日付形式に変換したい:
"\/Date(928164000000-0400)\/"
どうやってするか。
使用する
Date dt = new Date();
"\/Date(" + dt.getTime() + "-0400)\/"
現在の日付形式に応じて、おそらく getTime() を最初に解析する必要があります。
これは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);
JSONには実際には Date 形式はありません。普遍的ではない規則がいくつかあるだけです。
そうは言っても、あなたの「日付」は2つの部分に分かれています:
しかし、java Date
( a とは対照的にcalendar
) は、javascript と同様に、時間オフセットを含みません (getTimezoneOffset()
は非推奨です)。したがって、どちらを使用するかを決定する必要があります。または、私がするように、オフセットがゼロの UTC タイムスタンプを単純に送信することもできます。
var jsonDateUTC = "Date("+javaDate.getTime()+"-0000)";