gpt4 book ai didi

android - 如何将json firestore时间戳序列化为日期?

转载 作者:行者123 更新时间:2023-12-04 13:38:24 26 4
gpt4 key购买 nike

我在 Firestore 中存储了一个日期。我得到一个 HashMap<String, Object>来自firestore,我想从中重新创建我的对象。

在实现日期之前,工作代码是:

HashMap<String, Object> document = new HashMap<String, Object>();
document.put("name", "name");
JSONElement jsonElement = gson.toJsonTree(document);
Event event = gson.fromJson(jsonElement , Event.class);

我现在添加了该字段
@ServerTimestamp
private Date dateOfEvent;

但是当我尝试序列化它时,我收到以下错误:

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected STRING but was BEGIN_OBJECT at path $.dateOfEvent



因为 JsonElement “dateOfEvent” 看起来像这样,因为它是 Firestore 时间戳:
{"dateOfEvent": {"nanoseconds":0,"seconds":1584921600}, "name": "test Event"}

感谢您的时间和帮助。

最佳答案

Gson期待一个日期字符串,如 2020-02-27T09:00:00但它实际上是一个对象。你可以像这样设置你的类并添加一个辅助方法来获取 dateOfEvent作为 Date :

class Event {
private String name;
private MyDate date;
}

class MyDate {
private Long nanoseconds;
private Long seconds;

// getters/setters for nanoseconds, seconds...

public Date asDate() {
// convert to date
}
}

关于android - 如何将json firestore时间戳序列化为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60366017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com