net.sf.json日付タイプフォーマット出力

4320 ワード

もっと読む
Date、Timestamp
転載は[url]から
http://www.cnblogs.com/mjorcen/p/3780464.html[/url]
作成ツールクラス

package cn.jorcen.commons.util;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

public class DateJsonValueProcessor implements JsonValueProcessor {
    /**
     *                  
* G Era Text AD
* y Year 1996; 96
* M Month July; Jul; 07
* w Number 27
* W Number 2
* D Number 189
* d Number 10
* F Number 2
* E Text Tuesday; Tue
* a Am/pm Text PM
* H (0-23) Number 0
* k (1-24) Number 24
* K am/pm (0-11) Number 0
* h am/pm (1-12) Number 12
* m Number 30
* s Number 55
* S Number 978
* z General time zone Pacific Standard Time; PST; GMT-08:00
* Z RFC 822 time zone -0800
*/ public static final String Default_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss"; private DateFormat dateFormat; public DateJsonValueProcessor(String datePattern) { try { dateFormat = new SimpleDateFormat(datePattern); } catch (Exception e) { dateFormat = new SimpleDateFormat(Default_DATE_PATTERN); } } public Object processArrayValue(Object value, JsonConfig jsonConfig) { return process(value); } public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) { return process(value); } private Object process(Object value) { return dateFormat.format((Date) value); } }
テストクラス:

/**
 * 
 */
package cn.jorcen.commons.util;

import java.sql.Timestamp;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import net.sf.json.JsonConfig;

import com.alibaba.fastjson.serializer.SerializerFeature;

/**
 * 
 *   Json  
 * 
 * @author mjorcen
 * @email [email protected]
 * @dateTime Jun 4, 2014 4:11:20 PM
 * @version 1
 */
public class FastJosnUtil {
    public static final String toJson(Object obj) {
        return toNetSFJson(obj);
    }

    private static String toNetSFJson(Object obj) {
        JsonConfig config = new JsonConfig();
        config.registerJsonValueProcessor(Date.class,
                new DateJsonValueProcessor("yyyy-MM-dd hh:mm:ss"));
        config.registerJsonValueProcessor(Timestamp.class,
                new DateJsonValueProcessor("yyyy-MM-dd hh:mm:ss"));
        String objStr = net.sf.json.JSONObject.fromObject(obj, config)
                .toString();
        return objStr;
    }

    public static final String toFastJson(Object obj) {
        String objStr = com.alibaba.fastjson.JSONObject.toJSONString(obj,
                SerializerFeature.WriteDateUseDateFormat,
                SerializerFeature.WriteMapNullValue);
        return objStr;
    }

    public static void main(String[] args) {
        Map map = new HashMap();
        map.put("time", new Date());
        map.put("name", "yy");
        map.put("age", 20);
        map.put("timestamp", new Timestamp(System.currentTimeMillis()));
        System.out.println(toJson(map));
    }
}
結果:


{"timestamp":"2014-06-10 05:54:11","time":"2014-06-10 05:54:11","age":20,"name":"yy"}