我想将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只是一个例子)。
感谢您的帮助。
答案 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.org对JSONObject
的描述:
值可以是以下任何类型: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”
你可以这样做:
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()));