我有一个看起来像这样的对象:{ "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,因为我需要来自服务器的时间,以便对每个人都通用。
3 回答
DIEA
TA贡献1820条经验 获得超2个赞
这就是解决它的方法。感谢 Ayush Gupta 的评论。
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
timestamp = jsonObject.getLong("time");
lastLoadedDate = new Date(timestamp);
} catch (JSONException e) {
//Handle the exception
}
}
}
添加回答
举报
0/150
提交
取消