package com.zxt.basic.util; import java.sql.Timestamp; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import net.sf.json.JsonConfig; import net.sf.json.processors.JsonValueProcessor; /** * * 類名稱:DatejsJsonValueProcessor <br/> * 類描述:數據庫日期和json日期轉換 <br/> * 建立人:liheng <br/> * 建立時間:Jul 19, 2011 12:50:10 PM <br/> * 修改人: <br/> * 修改時間:Jul 19, 2011 12:50:10 PM <br/> * 修改備註: <br/> * @version 1.0.0 * */ public class JsonUtil implements JsonValueProcessor { /** * 默認的日期轉換格式. */ public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd"; /** * 日期轉換器. */ private DateFormat dateFormat; /** * 構造方法. * * @param datePattern 日期格式 */ public JsonUtil(String datePattern) { try { dateFormat = new SimpleDateFormat(datePattern); } catch (Exception ex) { dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN); } } /** * 默認構造方法 * 建立一個新的實例 DatejsJsonValueProcessor. * */ public JsonUtil() { dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN); } /** * 轉換數組 * @param value Object * @param jsonConfig 配置 * @return Object */ public Object processArrayValue(Object value, JsonConfig jsonConfig) { return process(value); } /** * 轉換對象. * @param key String * @param value Object * @param jsonConfig 配置 * @return Object */ public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) { return process(value); } /** * 格式化日期. * @param value Object * @return Object */ private Object process(Object value) { try { if(value instanceof Calendar){ return dateFormat.format(new Timestamp(((java.util.Calendar) value).getTimeInMillis())); }else{ return dateFormat.format((Date)value); } } catch (Exception ex) { return null; } } }