gpt4 book ai didi

java - 在 Java 中将 JSON 对象转换为 util.Date

转载 作者:搜寻专家 更新时间:2023-11-01 08:20:11 25 4
gpt4 key购买 nike

我有一个看起来像这样的对象:

{
"date": 12,
"day": 3,
"hours": 12,
"minutes": 32,
"month": 8,
"seconds": 32,
"time": 1536755552909,
"timezoneOffset": 0,
"year": 118
}

我正在使用 util.Date更早生成日期,但现在我从 Node.js 服务器以上面的格式获取它。我怎样才能将它转换为 Date类型?

当我尝试做的时候

StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {

JsonParser jsonParser = new JsonParser();
JsonElement jsonElement = jsonParser.parse(response);
Gson gson = new Gson();
Date date = gson.fromJson(jsonElement,Date.class);

lastLoadedDate = date;

elapsedTime = 0;

}
}

这只是失败,因为它不是一个字符串,节点服务器发送一个 JSON。如果我这样做 new Response.Listener<Date>()因为它是一个 JSON,而不是一个日期。像这样将 JSON 转换为日期 Date now = (Date) myJsonResponse导致 Android Studio 出错:

Incontrovertible types: cannot cast JSONObject to Date

编辑。我不能使用 util.Date,因为我需要来自服务器的时间,对每个人都是通用的。

最佳答案

如果可能,让服务器以更好的格式返回日期,例如 ISO-8601因为这将避免歧义并导致更小的 JSON 负载。

如果那不可能,您将必须决定使用 JSON 的哪些部分,time 或不同的值,例如 hoursminutes , ... 通过手动挑选这些部分,您可以使用其构造函数之一或通过 java.util.Calendar 对象手动构建 Date 对象(因为 java.util.Date 中的许多构造函数在 Java 8 中已弃用)。

关于java - 在 Java 中将 JSON 对象转换为 util.Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52295641/

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