将DateTime对象java转换为Json字符串

时间:2012-05-04 04:29:55

标签: android json

我想将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只是一个例子)。

感谢您的帮助。

8 个答案:

答案 0 :(得分: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) + ")/");

答案 1 :(得分: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)\\/";
}

答案 2 :(得分:0)

来自json.orgJSONObject的描述:

  

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

此库不支持Date到JSON表示的“复杂”映射。你必须自己做。您可以找到类似SimpleDateFormat的内容。

答案 3 :(得分:0)

您想要的日期格式是/Date(<epoch time><Time Zone>)/ 您可以使用long epoch = System.currentTimeMillis()/1000;(在this link找到)以及使用日期和时间模式Z获得的时区来获取Java中的纪元时间。然后将所有字符串合并为一个并将其存储到Json对象中 其他可能性是您从iOS设备获取的时间可能是here得到的模式yyMMddHHmmssZ。在不同的时间检查iOS设备上的输出并确定正确的模式。

答案 4 :(得分:0)

如果你的格式是这样的 - &gt; “DDMMYYYY + HHMM”

  1. DD - &gt;日(2位数)
  2. mm - &gt;月(2位数)
  3. YYYY - &gt;年(4位)
  4. HH - &gt;小时
  5. MM - &gt;分钟
  6. 你可以这样做:

    SimpleDateFormat format = new SimpleDateFormat("DDmmYYYY+HHMM");
    JSONObject object = new JSONObject();
    object.put("date", "/Date(" + format.format(new Date()) + ")/");
    

答案 5 :(得分: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()+")/";

答案 6 :(得分:0)

升级上一个答案之一:

LL(1)

答案 7 :(得分:0)

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

DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
yourJsonObject.accumulate("yourDateVarible",dateFormat.format(new Date()));