zoukankan      html  css  js  c++  java
  • net.sf.json日期类型格式化输出

    net.sf.json 日期类型格式化输出

     Date, Timestamp ;

    编写工具类

    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 {
        /**
         * 字母 日期或时间元素 表示 示例 <br>
         * G Era 标志符 Text AD <br>
         * y 年 Year 1996; 96 <br>
         * M 年中的月份 Month July; Jul; 07 <br>
         * w 年中的周数 Number 27 <br>
         * W 月份中的周数 Number 2 <br>
         * D 年中的天数 Number 189 <br>
         * d 月份中的天数 Number 10 <br>
         * F 月份中的星期 Number 2 <br>
         * E 星期中的天数 Text Tuesday; Tue<br>
         * a Am/pm 标记 Text PM <br>
         * H 一天中的小时数(0-23) Number 0 <br>
         * k 一天中的小时数(1-24) Number 24<br>
         * K am/pm 中的小时数(0-11) Number 0 <br>
         * h am/pm 中的小时数(1-12) Number 12 <br>
         * m 小时中的分钟数 Number 30 <br>
         * s 分钟中的秒数 Number 55 <br>
         * S 毫秒数 Number 978 <br>
         * z 时区 General time zone Pacific Standard Time; PST; GMT-08:00 <br>
         * Z 时区 RFC 822 time zone -0800 <br>
         */
        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 mjorcen@gmail.com
     * @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<String, Object> map = new HashMap<String, Object>();
            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"}
  • 相关阅读:
    Building a Space Station POJ
    Networking POJ
    POJ 1251 Jungle Roads
    CodeForces
    CodeForces
    kuangbin专题 专题一 简单搜索 POJ 1426 Find The Multiple
    The Preliminary Contest for ICPC Asia Shenyang 2019 F. Honk's pool
    The Preliminary Contest for ICPC Asia Shenyang 2019 H. Texas hold'em Poker
    The Preliminary Contest for ICPC Asia Xuzhou 2019 E. XKC's basketball team
    robotparser (File Formats) – Python 中文开发手册
  • 原文地址:https://www.cnblogs.com/mjorcen/p/3780464.html
Copyright © 2011-2022 走看看