json-lib date对象转json ,加入自定义日期格式处理

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

public class DateJsonValueProcessor implements JsonValueProcessor {
    public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
    private DateFormat dateFormat;   

    /**
     * 构造方法.
     *
     * @param datePattern 日期格式
     */
    public DateJsonValueProcessor(String datePattern) {
        try {
            dateFormat = new SimpleDateFormat(datePattern);
        } catch (Exception ex) {
            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) {
        if (value == null) {
            value = new Date();   //为null时返回当前日期,也可以返回"",看需要
        }
        return dateFormat.format((Date) value);
    }   

    public static String map2JSonStr(Map map) {
        JsonConfig jsonConfig = new JsonConfig();
        DateJsonValueProcessor beanProcessor = new DateJsonValueProcessor(
                DEFAULT_DATE_PATTERN);
        jsonConfig.registerJsonValueProcessor(Date.class, beanProcessor);   

        JSONObject jsonObject = JSONObject.fromObject(map, jsonConfig);   

        return jsonObject.toString();
    }      

    //将对象转换为json string,使用上面定义的的日期格式
    @SuppressWarnings("unchecked")
    public static JSONObject obj2JsonObj(Object obj) {
        JsonConfig jsonConfig = new JsonConfig();
        DateJsonValueProcessor beanProcessor = new DateJsonValueProcessor(
                DEFAULT_DATE_PATTERN);
        jsonConfig.registerJsonValueProcessor(Date.class, beanProcessor);   

        JSONObject jsonObject = JSONObject.fromObject(obj, jsonConfig);   

        return jsonObject;
    }
}  

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

public class DateJsonValueProcessor implements JsonValueProcessor {
    public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
    private DateFormat dateFormat;

    /**
     * 构造方法.
     *
     * @param datePattern 日期格式
     */
    public DateJsonValueProcessor(String datePattern) {
        try {
            dateFormat = new SimpleDateFormat(datePattern);
        } catch (Exception ex) {
            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) {
        if (value == null) {
            value = new Date();   //为null时返回当前日期,也可以返回"",看需要
        }
        return dateFormat.format((Date) value);
    }

    public static String map2JSonStr(Map map) {
        JsonConfig jsonConfig = new JsonConfig();
        DateJsonValueProcessor beanProcessor = new DateJsonValueProcessor(
                DEFAULT_DATE_PATTERN);
        jsonConfig.registerJsonValueProcessor(Date.class, beanProcessor);

        JSONObject jsonObject = JSONObject.fromObject(map, jsonConfig);

        return jsonObject.toString();
    }    

    //将对象转换为json string,使用上面定义的的日期格式
    @SuppressWarnings("unchecked")
    public static JSONObject obj2JsonObj(Object obj) {
        JsonConfig jsonConfig = new JsonConfig();
        DateJsonValueProcessor beanProcessor = new DateJsonValueProcessor(
                DEFAULT_DATE_PATTERN);
        jsonConfig.registerJsonValueProcessor(Date.class, beanProcessor);

        JSONObject jsonObject = JSONObject.fromObject(obj, jsonConfig);

        return jsonObject;
    }
}
时间: 2025-01-02 14:44:18

json-lib date对象转json ,加入自定义日期格式处理的相关文章

POI对Excel自定义日期格式的读取

用POI读取Excel数据:(版本号:POI3.7) 1.读取Excel Java代码   private List<String[]> rosolveFile(InputStream is, String suffix, int startRow) throws IOException, FileNotFoundException { Workbook xssfWorkbook = null; if ("xls".equals(suffix)) { xssfWorkboo

poi中如何自定义日期格式

1. poi的“Quick Guide”中提供了 “How to create date cells ”例子来说明如何创建日期单元格,代码如下: [java] view plain copy HSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm")); cell = row.createCell((short

自定义日期格式-炫酷

代码: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>自定义日期格式</title> 6 <style> 7 *{margin: 0;padding:0;} 8 html, body{width:100%;height:100%;} 9 body{background:

Java自定义日期格式中包含其它字母

相信在网上也可以找到很多自定义日期格式,如yyyy-MM-dd HH:mm:ss,yyyy年MM月dd日 HH时mm分ss秒 等.但是如果日期中有其它字母的时候,应该如何定义格式呢?如 输出2014-11-03T12:45:20,其中多了一个T字符.如果把格式定义为:yyyy-MM-ddTHH:mm:ss,这时候一运行就会出错,说法是无法识别T字符. 那么解决方向就是把这个T进行转义,让系统不要去转换.尝试了一下\T,编译不通过.然后就用了‘T’,这样就OK了.

ASP.Net Core 返回的json数据,自定义日期格式

//代码位置:Startup.cs public void ConfigureServices(IServiceCollection services) { services.AddMvc() .AddJsonOptions ( json => { //统一设置JsonResult中的日期格式 json.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; } ); } 基本上所有的人都在DateTime类型的字

js date对象传参获取特定日期的时间戳

当我们想要通过js获取某一特定时间的时间戳时,会通过给date对象传参再通过getTime函数来获取,传递的参数格式也有不同形式.有些时候,可能会因为自己传入参数的格式不正确而导致date对象invalid,进而导致逻辑出现错误. date对象传递的参数主要有字符串以及年月日等的数字,如下: new Date( year, month, date, hrs, min, sec) 参数说明: year的值为:需设定的年份-1900.例如需设定的年份是1997则year的值应为97,即1997-19

java中使用poi导入导出excel文件_并自定义日期格式

Apache POI项目的使命是创造和保持java API操纵各种文件格式基于Office Open XML标准(OOXML)和微软的OLE复合文档格式(OLE2)2.总之,你可以读写Excel文件使用java.此外,您可以读取和写入MS Word和PowerPoint文件使用java.Apache POI是java Excel解决方案(Excel 97-2008). 需要jar: poi-3.9-20121203.jar 导出 public static void main(String[]

自定义日期格式转换

<!doctype html>  <html>  <head>  <meta charset="utf-8">  <title>show_time</title>  <style> body {      padding-top: 40px;  }  #main {      margin: auto;      text-align: center;      width: 300px;      h

利用jsonconvert来转换json数据格式 (对象转为json)

今天学了一下.net的WCF组件,边心血来潮,想着现在不都是前后分离,调接口开发不,于是赶紧写了一简单的后台数据,哈哈  废话不多说,直接上代码: 注意需要导入库! 实体类:Customer using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace domain { public class Custom