JSON 日期处理

通过java输出json对象后的日期格式如下所示: 

	var obj = {
		"data" : [{
					"SAL" : 2975,
					"JOB" : "MANAGER",
					"ENAME" : "JONES",
					"EMPNO" : 7566,
					"HIREDATE" : {
						"date" : 12,
						"day" : 6,
						"hours" : 8,
						"minutes" : 25,
						"month" : 11,
						"nanos" : 0,
						"seconds" : 36,
						"time" : 913422336000,
						"timezoneOffset" : -480,
						"year" : 98
					}
				}]
	}
	var d=new Date(obj.data[0].HIREDATE.time).toLocaleString();

结果:Sat Dec 12 1998 08:25:36 GMT+0800 (CST);

或者在java端处理:

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

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

public class JsonValueProcessorImpl implements JsonValueProcessor {

	private String format;

	public JsonValueProcessorImpl(String format) {
		super();
		this.format = format;
	}

	public Object processArrayValue(Object arg0, JsonConfig arg1) {
		// TODO Auto-generated method stub
		return null;
	}

	public Object processObjectValue(String key, Object value,
			JsonConfig jsonConfig) {
		// TODO Auto-generated method stub
		if (value instanceof Date) {
			String str = new SimpleDateFormat(format).format((Date) value);
			return str;
		}
		if (value instanceof Timestamp) {
			String str = new SimpleDateFormat(format).format((Timestamp) value);
			return str;
		}
		return null;
	}

	/*
	 * 以下部分自行处理
	 */
	public JsonConfig getJsonConfig() {
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.registerJsonValueProcessor(java.util.Date.class,
				new JsonValueProcessorImpl(this.format));
		jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class,
				new JsonValueProcessorImpl(this.format));
		return jsonConfig;
	}

	public String getStrByList(List obj) {
		JSONArray jsonArray = JSONArray.fromObject(obj, this.getJsonConfig());
		return jsonArray.toString();
	}

	public String getStrByObject(Object obj) {
		JSONObject json = JSONObject.fromObject(obj, this.getJsonConfig());
		return json.toString();
	}
}

测试:

		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.registerJsonValueProcessor(java.util.Date.class,
				new JsonValueProcessorImpl("yyyy-MM-dd HH:mm:ss"));
		jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class,
				new JsonValueProcessorImpl("yyyy-MM-dd HH:mm:ss"));
		JSONArray jsonArr = new JSONArray();

		System.out.println(jsonArr.fromObject(new PageBean(), jsonConfig));

		System.out.println(JSONObject.fromObject(new PageBean(), jsonConfig));

		JsonValueProcessorImpl jsonValue = new JsonValueProcessorImpl(
				"yyyy-MM-dd HH:mm:ss");
		System.out.println(jsonValue.getStrByList(new ArrayList()));

		System.out.println(jsonValue.getStrByObject(new PageBean()));

结果:

	var obj = {
		"data" : [{
					"SAL" : 2975,
					"JOB" : "MANAGER",
					"ENAME" : "JONES",
					"EMPNO" : 7566,
					"HIREDATE" : "1998-12-12 08:25:36"
				}]
	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值