我有一個看起來像這樣的對象:{ "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
提交
取消