Json DateTime Parsing en Android

Mi API da este resultado:

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

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(); } 

Pero no funciona, lo que quiero es que debe calcular el tiempo transcurrido desde que el usuario publicó el mensaje,
Es decir, tenemos que restar los datos actuales con la fecha en JSON, y luego convertir que en minutos / horas

Bueno, espero que encuentre esto útil:

 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 

Pero estoy diciendo, que el formato de fecha en su JSON Es realmente ackwards, tomar el ejemplo de google , para un JSON correcto, estándar, analizado.

Bueno, espero que encuentre esto útil:

 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); } 
  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(); } 

Esto funcionará para seguro

 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 
  • Hacer formas dinámicas (el mejor enfoque)
  • Crear un JSONArray
  • JSONArray a HashMap
  • ¿Aplicación de Android para la tienda Magento utilizando REST o SOAP?
  • ¿Cuál es la mejor manera de combinar (fusionar) 2 JSONObjects?
  • Interfaz de importación json de Java para Android / Java
  • Establecer Retrofit RestAdapter.LogLevel a algo que no sea FULL produce un cuerpo de respuesta vacía
  • JSON Parsing funciona en Android 4.0 pero no en Android <4.0
  • JsonMappingException: No se encontró ningún constructor adecuado
  • ¿Cómo enviar un objeto JSON a través de HttpClient Request con Android?
  • Cómo hacer un servicio web (preferiblemente usando PHP) que puede ser solicitado para obtener objetos JSON por la aplicación android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.