【发布时间】:2019-02-17 02:56:17
【问题描述】:
我有一个看起来像这样的对象:
{
"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,而不是日期。像这样Date now = (Date) myJsonResponse 将 JSON 转换为 Date 会导致 Android Studio 出错:
无可争议的类型:无法将 JSONObject 转换为 Date
编辑。我不能使用 util.Date,因为我需要从服务器来的时间,以便对每个人都通用。
【问题讨论】:
-
我认为
time字段代表的是 Epoch 中的时间,您不能将其转换为日期吗? -
如果您想获取日期,可以使用 json 来获取日期 - 您可以尝试使用字符串格式,例如“Sep 12, 2018 3:57:59 PM”
-
@AyushGupta 这就是解决它的方法。要添加答案吗?
-
@AlexIronside 自从我使用 JAVA 以来已经有一段时间了,所以我对语法不够精通,无法给出可接受的答案
标签: java android json date time