java 日期 面试题,Java GSON-日期格式

似乎你需要同时定义日期和时间部分的格式或使用基于字符串的格式。例如:

Gson gson = new GsonBuilder()

.setDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz").create();

或使用java.text.DateFormat

Gson gson = new GsonBuilder()

.setDateFormat(DateFormat.FULL, DateFormat.FULL).create();

或使用序列化程序:

我相信格式化程序无法产生时间戳,但是此串行器/解串器对似乎可以正常工作

JsonSerializer ser = new JsonSerializer() {

@Override

public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext

context) {

return src == null ? null : new JsonPrimitive(src.getTime());

}

};

JsonDeserializer deser = new JsonDeserializer() {

@Override

public Date deserialize(JsonElement json, Type typeOfT,

JsonDeserializationContext context) throws JsonParseException {

return json == null ? null : new Date(json.getAsLong());

}

};

Gson gson = new GsonBuilder()

.registerTypeAdapter(Date.class, ser)

.registerTypeAdapter(Date.class, deser).create();

如果使用Java 8或更高版本,则应使用上述序列化器/反序列化器,如下所示:

JsonSerializer ser = (src, typeOfSrc, context) -> src == null ? null

: new JsonPrimitive(src.getTime());

JsonDeserializer deser = (jSon, typeOfT, context) -> jSon == null ? null : new Date(jSon.getAsLong());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值