1

我想将java中的日期时间对象转换为json字符串,格式如下:

{"date":"/Date(18000000+0000)/"}

我确实喜欢这个,但它没有给我我想要的格式:

JSONObject object = new JSONObject();
object.put("date",new Date());

和 object.toString() 的结果

{"date":"Fri May 04 11:22:32 GMT+07:00 2012"}

我希望将字符串“Fri May 04 11:22:32 GMT+07:00 2012”转换为“/Date(18000000+0000)/”(这里的 18000000+0000 只是一个示例)。

谢谢你的帮助。

4

8 回答 8

3

这是我的解决方案,虽然不是一个好方法,但我终于找到了一个可行的解决方案。

SimpleDateFormat format = new SimpleDateFormat("Z");
Date date = new Date();
JSONObject object = new JSONObject();
object.put("date", "/Date(" + String.valueOf(date.getTime()) + format.format(date) + ")/");
于 2012-05-04T07:27:29.520 回答
1
 public static String convertToJsonDateTime(String javaDate)

  {
     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
        Date currentDate = null;
        try {
            currentDate = dateFormat.parse(javaDate);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        long time =currentDate.getTime();
    return  "\\/Date("+time+"+0000)\\/";
}
于 2015-03-20T12:44:15.593 回答
1

我的解决方案:我认为这是最简单的方法

DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
yourJsonObject.accumulate("yourDateVarible",dateFormat.format(new Date()));
于 2017-04-16T17:32:22.110 回答
0

来自json.org的描述JSONObject

这些值可以是以下任何类型:Boolean、JSONArray、JSONObject、Number 和 String,或 JSONObject.NULL 对象。

此库不支持 Date 到 JSON 表示的“复杂”映射。你必须自己做。您可能会发现类似的东西SimpleDateFormat很有帮助。

于 2012-05-04T04:39:01.850 回答
0

您想要的日期格式是/Date(<epoch time><Time Zone>)/.
您可以使用long epoch = System.currentTimeMillis()/1000;(在此链接中找到)获取 java 中的纪元时间,以及使用日期和时间模式获取的时区 as Z。然后将所有字符串合二为一,存入Json Object。
其他可能性是您从 iOS 设备获取的时间可能与yyMMddHHmmssZ这里获取的模式相同。在不同时间检查 iOS 设备上的输出并识别正确的模式。

于 2012-05-04T06:12:40.397 回答
0

如果你的格式是这样的 -> "DDmmYYYY+HHMM"

  1. DD -> 天(2 位)
  2. mm -> 月(2 位数)
  3. YYYY -> 年(4 位)
  4. HH -> 小时
  5. MM -> 分钟

比你可以这样做:

SimpleDateFormat format = new SimpleDateFormat("DDmmYYYY+HHMM");
JSONObject object = new JSONObject();
object.put("date", "/Date(" + format.format(new Date()) + ")/");
于 2012-05-04T06:14:29.013 回答
0

我想这是ISO international date-time格式的表示。

YYYYMMDD+HHMM

我认为现在您将能够创建该字符串

可能像,

Date d=new Date(); String tmp=""; tmp="/Date("d.getYear()+""+d.getMonth()+""+d.getDate()+"+"+d.getHours()+""+d.getMinutes()+")/";

于 2012-05-04T06:41:09.063 回答
0

升级上一个答案之一:

 public static String convertToJsonDateTime(Date dateToConvert) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
        long time = dateToConvert.getTime();
        return "/Date(" + time + "+0000)/";
    }
于 2016-03-24T13:21:21.543 回答