请有人帮我这个
我有一个简单的Date对象,如:
Date dt = new Date();
我想将其转换为json日期格式,如:
"\/Date(928164000000-0400)\/"
怎么做。
答案 0 :(得分:3)
使用
Date dt = new Date();
"\/Date(" + dt.getTime() + "-0400)\/"
您可能需要先解析getTime(),具体取决于您当前的日期格式。
答案 1 :(得分:1)
这是使用 com.google.gson。*
final JsonSerializer<Date> dateSerialize = new JsonSerializer<Date>()
{
@Override
public JsonElement serialize(final Date src,
final Type typeOfSrc,
final JsonSerializationContext context)
{
final String dateString = "Date(" + src.getTime() + "-" + src.getTimezoneOffset()+")";
return new JsonPrimitive(dateString);
}
};
Gson gson = GsonBuilder().registerTypeAdapter(Date.class, dateSerialize)
.create();
Date dt = new Date();*
gson.toJson(dt);
答案 2 :(得分:1)
JSON中没有真正的日期格式,只有一些不是普遍的约定。
话虽如此,您的“约会”分为两部分:
但是java Date
(与calendar
相反),就像javascript一样,不包含时间偏移量(getTimezoneOffset()
已弃用)。所以你必须决定你想要使用哪一个。或者你可以像我一样,简单地发送带有零偏移的UTC时间戳:
var jsonDateUTC = "Date("+javaDate.getTime()+"-0000)";