java - 将 Json 日期转换为 java 日期

标签 java json datetime gson

我的 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/

相关文章:

java - 通过 h2 浏览器和控制台与 PlayFramework 中的 EBean 模型类进行交互

java - 在Java中,有没有办法检查Runnable是否在单线程中完成?

javascript - PDF在线数字签名

javascript - 在 PHP 和/或 JavaScript 中获取最后四个星期日

java - DateFormat 格式方法不显示特定时区的解析日期

python - Pandas:将季度数据转换为月度数据

java - 互联网许可不适用于奥利奥和馅饼

mysql - 如何使用 MySQL 查询 JSON 对象内未修改的时间戳?

php - 使用 PHP 和 MySQL 生成不带斜杠的 JSON

c++ - RapidJSON 循环遍历字符串数组?