将java日期转换为json日期

时间:2012-11-12 12:55:50

标签: java android json

请有人帮我这个

我有一个简单的Date对象,如:

Date dt = new Date();

我想将其转换为json日期格式,如:

"\/Date(928164000000-0400)\/"

怎么做。

3 个答案:

答案 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中没有真正的日期格式,只有一些不是普遍的约定。

话虽如此,您的“约会”分为两部分:

  • 自纪元以来的数毫秒。您可以使用getTime()方法
  • 在UTC中获取此信息
  • 时区偏移

但是java Date(与calendar相反),就像javascript一样,不包含时间偏移量(getTimezoneOffset()已弃用)。所以你必须决定你想要使用哪一个。或者你可以像我一样,简单地发送带有零偏移的UTC时间戳:

var jsonDateUTC = "Date("+javaDate.getTime()+"-0000)";