残りを使用するjava-eeアプリケーションのテストを行っていますが、gsonでjsonをフォーマットしようとしたときに、次のエラーが発生しました:Gsonはjavaで私のjsonの日付を解析できません
java.text.ParseException: Failed to parse date ["1489752692000']: Invalid time zone indicator '9'
これは私がGson gson = new Gson();
と私のGsonを初期化したとき、私は解決策は、カスタムDateDeseriliazerクラスを作成し、このようintializeしたStackOverflowの上this questionを見つけ起こっ:
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new GsonDateFormatter()).create();
ここに私のversiがありますDateDeserializerクラスの上:
public class GsonDateFormatter implements JsonDeserializer<Date> {
private final DateFormat dateFormat;
public GsonDateFormatter() {
dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
dateFormat.setTimeZone(TimeZone.getTimeZone("CET"));
}
public synchronized Date deserialize(JsonElement jsonElement,Type type,JsonDeserializationContext jsonDeserializationContext) {
try {
return dateFormat.parse(jsonElement.getAsString());
} catch (ParseException e) {
throw new JsonParseException(e);
}
}
}
しかし、これは唯一にエラーメッセージを変更します。だから私は今、この問題を解決するかどうかは非常にわからないんだけど、私は、誰かが私を助けることができると思います
java.text.ParseException: Unparseable date: "1489752692000"
これとともに。
ありがとうございます。
「新しい日付(jsonElement.getAsLong())」ですか? –
'1489752692000'は明らかに' yyyy-MM-dd'T'HH:mm:ss'Z 'という形式ではないので、なぜその形式を与えましたか? –
@ cricket_007なぜ私はそこに置くべきフォーマットと他のポストがそのフォーマットを使用したか分からなかったので –