我的json 响应 包含一个 CreatedOn 日期:
{ "CreatedOn" : "\/Date(1406192939581)\/" }
我需要将 CreatedOn 转换为简单的日期格式,并 计算从CreatedOn日期到当前日期的差异天数。
当我调试下面的代码字符串 CreatedOn时 显示一个空值。怎么会?
JSONObject store = new JSONObject(response); if (response.contains("CreatedOn")) { String CreatedOn = store.getString("CreatedOn"); }
JSONObject store = new JSONObject(response); if(store.has("CreatedOn")) { Timestamp stamp = new Timestamp(store.getLong("CreatedOn")); Date date = new Date(stamp.getTime()); System.out.println(date); }
要么
JSONObject store = new JSONObject(response); if(store.has("CreatedOn")) { Integer datetimestamp = Integer.parseInt(store.getString("CreatedOn").replaceAll("\\D", "")); Date date = new Date(datetimestamp); DateFormat formatter = new SimpleDateFormat("HH:mm:ss:SSS"); String dateFormatted = formatter.format(date); }
考虑使用JSON方法而不是包含。JSON具有“ has()”,用于验证密钥是否存在。
您还应该确保首先尝试{}捕获{}字符串,以确保其有效的JSON。
更新:
您的值是/日期(1406192939581)/
这意味着它必须先格式化。通过解析字符串来获取它
Integer datetimestamp = Integer.parseInt(store.getString("CreatedOn").replaceAll("\\D", ""));