Json日期时间解析在Android



我的API给出了这个结果:

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

我像这个一样解析我的JSON

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

但它不起作用,我想要的是它应该计算自用户发布帖子以来所用的时间,
即我们必须用JSON中的日期减去当前数据,然后将其转换为分钟/小时

我希望你能找到这个有用的:

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

但我想说的是,JSON中的日期格式。以谷歌为例,它确实是一个正确的、标准的、解析的JSON。

我希望你能找到这个有用的:

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

这将适用于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
  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();
          }

相关内容

  • 没有找到相关文章

最新更新