Json DateTime Parsing In Android

My API gives this result:

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

I am parsing 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 it does not work, I want it to calculate the time elapsed since the moment the User posted the message, i.e. we need to subtract the current date with date in JSON and then convert it to minute / hour

+6
source share
4 answers

Ok, hope you find this useful:

 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 say the date format is in your JSON. It's really back, take the google example, for the correct, standard, parsed JSON.

+4
source

Ok, hope you find this useful:

 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); } 
+2
source
  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(); } 
+1
source

This will work for confidence.

 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 
0
source

Source: https://habr.com/ru/post/958272/


All Articles