Json DateTime Parsing In Android

爷,独闯天下 提交于 2019-12-07 00:37:37

问题


My API Gives This Result:

{
    "Posts": [{
        "UseName": "Robert Ray",
        "DateTime": "\/Date(1376841597000)\/",
        "PostText": "Welcome!!\u003cbr\u003eThis Is my Text"
    }]
}

I Parse My JSON Like This

try {
    Posts = json.getJSONArray(TAG_POSTS);

    for(int i = 0; i < Posts.length(); i++){
        JSONObject c = Posts.getJSONObject(i);
        String post_text = c.getString("PostText"); 

        String strDate = "2013-05-15T10:00:00-0700";
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
        Date date = (Date) dateFormat.parse(c.getString("DateTime"));
    }
} catch (JSONException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
} catch (ParseException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
} 

But Its Not Working, what I want is It should calculate the time elapsed since the User posted the Post,
i.e we have to subtract the current data with the date in JSON, and then convert that in Minutes / Hours


回答1:


Well I hope that you find this usefull:

String ackwardDate = "/Date(1376841597000)/";
//Dirty convertion
Calendar calendar = Calendar.getInstance();
String ackwardRipOff = ackwardDate.replace("/Date(", "").replace(")/", "");
Long timeInMillis = Long.valueOf(ackwardRipOff);
calendar.setTimeInMillis(timeInMillis);
System.out.println(calendar.getTime().toGMTString()); //Prints 18 Aug 2013 15:59:57 GMT

But I'm saying, that date format in your JSON It's really ackwards, take the example of google, for a correct, standar, parsed JSON.




回答2:


Well I hope that you find this usefull:

public static Date JsonDateToDate(String jsonDate)
{
    //  "/Date(1321867151710+0100)/"
    int idx1 = jsonDate.indexOf("(");
    int idx2 = jsonDate.indexOf(")") - 5;
    String s = jsonDate.substring(idx1+1, idx2);
    long l = Long.valueOf(s);
    return new Date(l);
}



回答3:


  public static  String ConvertJsonDate()
          {

            String jsondate="\/Date(1427959670000)\/";
              jsondate=jsondate.replace("/Date(", "").replace(")/", "");
                long time = Long.parseLong(jsondate);
                Date d= new Date(time);
            Log.d("Convertd date is:"+new SimpleDateFormat("dd/MM/yyyy").format(d).toString());

                return new SimpleDateFormat("MM/dd/yyyy").format(d).toString();
          }



回答4:


This will work For Sure

String date = "/Date(1376841597000)/";
Calendar calendar = Calendar.getInstance();
String datereip = date.replace("/Date(", "").replace(")/", "");
Long timeInMillis = Long.valueOf(datereip);
calendar.setTimeInMillis(timeInMillis);
System.out.println(calendar.getTime().toString("dd-MMM-yyyy h:mm tt"));//It Will Be in format 29-OCT-2014 2:26 PM


来源:https://stackoverflow.com/questions/20036075/json-datetime-parsing-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!