【发布时间】:2018-02-21 15:00:20
【问题描述】:
我有一个应用程序,它从JSON 文件中获取数据,("name","date","picture_url") 并在RecyclerView 上显示它,但是...日期是用 unix 编写的,所以我需要获取每个“日期”JSON 对象并将其值更改为正确的日期格式,然后再将其显示到屏幕上。
所以我写了类似的东西:
long dv = Long.valueOf(o.getString("date"))*1000;
Date df = new java.util.Date(dv);
String vv = new SimpleDateFormat("yyyy-MM").format(df);
o.getString("date").equals(vv);
在这个:
StringRequest stringRequest = new StringRequest(
Request.Method.GET,
URL_DATA,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
progressDialog.dismiss();
try {
JSONArray array = new JSONArray(response);
for(int i=0; i<array.length(); i++) {
JSONObject o = array.getJSONObject(i);
ListItem item = new ListItem(
o.getString("name"),
o.getString("date"),
o.getString("picture_url"
)
);
long dv = Long.valueOf(o.getString("date"))*1000;
Date df = new java.util.Date(dv);
String vv = new SimpleDateFormat("yyyy-MM").format(df);
o.getString("date").equals(vv);
listItems.add(item);
}
adapter = new MyAdapter(listItems, getApplicationContext());
recyclerView.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}
);
但它不起作用。 SDK 没有显示任何错误,并且我提出了新的想法。 那么我如何才能在将“日期”显示到应用程序屏幕之前对其进行更改?
【问题讨论】:
-
您收到的日期格式是什么?
-
你在哪里把格式化的日期放回列表项?
-
你能显示你从 api 得到的日期的响应吗?
-
我想你可能误解了
equals方法的使用。它没有分配任何东西。 -
SimpleDateFormat类早已过时并且出了名的麻烦。考虑将ThreeTenABP 添加到您的Android 项目中,以便您可以使用java.time, the modern Java date and time API 来代替。使用起来感觉好多了。
标签: java android json android-recyclerview