色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

gson json 時間格式

謝彥文2年前9瀏覽0評論

在Android開發(fā)中,Gson是非常重要的一個庫,它可以將java對象轉(zhuǎn)化為json字符串,并且可以將json字符串轉(zhuǎn)化為java對象。而在json中,時間格式通常使用ISO格式串來表示。在Gson中,處理時間格式的方式有兩種:使用默認(rèn)的GsonBuilder或者自定義TypeAdapter。

使用默認(rèn)的GsonBuilder,我們可以自動將時間格式轉(zhuǎn)換為ISO格式串,然后再進(jìn)行序列化。例如:

Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
.create();
String json = gson.toJson(myObject);

這樣就可以將時間格式為“2019-05-01T13:15:30+08:00”的對象轉(zhuǎn)換為json字符串。在反序列化時,Gson會自動將json字符串中的時間格式解析為Date類型。

如果我們需要自定義時間格式,可以使用自定義TypeAdapter。例如,如果我們需要將時間格式轉(zhuǎn)換為“yyyy年MM月dd日 HH:mm:ss”的字符串格式,可以這樣定義一個自定義的TypeAdapter:

public class DateAdapter extends TypeAdapter{
private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
@Override
public void write(JsonWriter out, Date value) throws IOException {
if (value == null) {
out.nullValue();
return;
}
String formatted = dateFormat.format(value);
out.value(formatted);
}
@Override
public Date read(JsonReader in) throws IOException {
if (in.peek() == JsonToken.NULL) {
in.nextNull();
return null;
}
String dateStr = in.nextString();
try {
return dateFormat.parse(dateStr);
} catch (ParseException e) {
throw new IOException(e);
}
}
}
Gson gson = new GsonBuilder()
.registerTypeAdapter(Date.class, new DateAdapter())
.create();
String json = gson.toJson(myObject);

這樣就可以將時間格式為“2019-05-01T13:15:30+08:00”的對象轉(zhuǎn)換為格式為“2019年05月01日 13:15:30”的json字符串。