我的 json 响应包含一个 CreatedOn 日期:
{
"CreatedOn" : "\/Date(1406192939581)\/"
}
我需要将 CreatedOn 转换为简单的日期格式,并计算从 CreatedOn 日期到 Present Date 的天数。
当我调试显示空值的以下代码字符串 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()”,用于验证 key 是否存在。
您还应该确保首先尝试{}捕获{}字符串,以确保其有效的 JSON。
更新:
你的值(value)是 /日期(1406192939581)/
表示必须先格式化。 通过用
解析字符串来获取它Integer datetimestamp = Integer.parseInt(store.getString("CreatedOn").replaceAll("\\D", ""));
关于java - 将 Json 日期转换为 java 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24956396/