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