如何在JSON对象中格式化此Date

时间:2016-04-02 20:22:58

标签: java android json

我在json中有这个日期

"date": "2016-01-29T19:27:44",

我想将其转换为 2016年1月29日

目前,我正在使用此代码进行格式化:

private void parseData(JSONArray array){
    Log.d(TAG, "Parsing array");

    for(int i = 0; i<array.length(); i++) {
        PostItems postItem = new PostItems();
        JSONObject jsonObject = null;
        try {
            jsonObject = array.getJSONObject(i);
            postItem.setPost_title(jsonObject.getString(ConfigPost.TAG_POST_TITLE));
            postItem.setPost_body(jsonObject.getString(ConfigPost.TAG_POST_BODY));

            SimpleDateFormat formatDate = new SimpleDateFormat("dd MMM,yyyy");
            String postDate = jsonObject.getString(ConfigPost.TAG_POST_DATE);
            try {
                Date date = formatDate.parse(postDate);
                postItem.setPost_date(date);
            } catch (ParseException e) {
                Log.d(TAG, "Error in Parsing date");
            }



        } catch (JSONException w) {
            w.printStackTrace();
            //Toast.makeText(this, "Error in parsing Json", Toast.LENGTH_LONG).show();
        }
        mPostItemsList.add(postItem);
    }

}

在第postItem.setPost_date(date)行; date以红色加下划线,当我将其悬停时,我看到PostItems中的 setPost_date(java.lang.String)无法应用于(java.util.Date)

无论如何要正确格式化这个?

1 个答案:

答案 0 :(得分:1)

SimpleDateFormat formatDate = new SimpleDateFormat("dd MMM,yyyy");
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
String inputDateStr = jsonObject.getString(ConfigPost.TAG_POST_DATE);
try {
    Date inputDate = inputFormat.parse(inputDateStr);             
    String postDateStr = formatDate.format(inputDate); 
    postItem.setPost_date(postDateStr);
} catch (ParseException e) {
     Log.d(TAG, "Error in Parsing date");
}