zoukankan      html  css  js  c++  java
  • JsonObject处理时间转换问题

    正常传时间的时候使用JsonObject转换的时候会把整个日期都转换成一个新的对象,而如何转换成传统的yyyy-MM-dd HH:mm:ss类型呢

    常用的时间格式

        private String format = "yyyy-MM-dd HH:mm:ss";
    //    private String format = "yyyy-MM-dd'T'HH:mm:ss.SSS";
    //    String formatIn = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ";
    //    String formatOut = "yyyy-MM-dd HH:mm:ss";
    //    String formatOut2 = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ";
    

    项目中存放一个下面的工具类

    import net.sf.json.JsonConfig;
    import net.sf.json.processors.JsonValueProcessor;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * JSON日期格式转换
     */
    public class DateJsonValueProcessor implements JsonValueProcessor {
        private String format = "yyyy-MM-dd HH:mm:ss";
    //    private String format = "yyyy-MM-dd'T'HH:mm:ss.SSS";
    //    String formatIn = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ";
    //    String formatOut = "yyyy-MM-dd HH:mm:ss";
    //    String formatOut2 = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ";
    
    
        public DateJsonValueProcessor() {
    
        }
    
        public DateJsonValueProcessor(String format) {
    
            this.format = format;
        }
    
        @Override
        public Object processArrayValue(Object value, JsonConfig jsonConfig) {
    
            String[] obj = {};
            if (value instanceof Date[]) {
                SimpleDateFormat sf = new SimpleDateFormat(format);
                Date[] dates = (Date[]) value;
                obj = new String[dates.length];
                for (int i = 0; i < dates.length; i++) {
                    obj[i] = sf.format(dates[i]);
                }
            }
            return obj;
        }
    
        @Override
        public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
    
            if (value instanceof Date) {
                String str = new SimpleDateFormat(format).format((Date) value);
                return str;
            }
            return value;
        }
    
        public String getFormat() {
    
            return format;
        }
    
        public void setFormat(String format) {
    
            this.format = format;
        }
    
    }

    转为JSON,Object或者JSONArray的时候像下面一样引用

    DateJsonValueProcessor是可以使用一个时间格式当Value的,如果不满足的话可以使用新的格式来传递

    JsonConfig cfg = new JsonConfig();
    cfg.setExcludes(new String[]{"handler", "hibernateLazyInitializer"});
    cfg.registerJsonValueProcessor(Date.class, new DateJsonValueProcessor());
    
    
    JSONArray updateJson = JSONArray.fromObject(objectList, cfg);
  • 相关阅读:
    把Linux安装到移动硬盘上
    关于thinkphp 开发的网站部署问题
    lamp 网站打不开,不显示也不报错,
    前端之css语法3
    前端之css笔记2
    前端之练习2
    前端之css笔记1
    前端之笔记1
    前端之练习1
    MySQL之练习题5
  • 原文地址:https://www.cnblogs.com/shenyanrushang/p/10852465.html
Copyright © 2011-2022 走看看