1. 程式人生 > >解決easyui 中顯示Date型別資料為[object Object],json中格式化日期

解決easyui 中顯示Date型別資料為[object Object],json中格式化日期

javabean中

public class Ent{

 /**
  *
  */
 private static final long serialVersionUID = 456194500355659344L;
 

 
 private String id;//主鍵,
 
 private String entName;//商家名稱
 
 private Date smsSendTime;//傳送時間  在bean中該欄位型別為java.util.Date,  資料庫中該欄位型別為java.sql.Date
 
 private String remark;//備註

.......get和set方法

}

Struts2 action中

  jsonMap是從資料庫中查出的javaBean的結果集

 yyyy-MM-dd HH:mm:ss該值可換成任何你想要在頁面展示的日期格式

 JsonConfig config = new JsonConfig();         
  config.setIgnoreDefaultExcludes(false);          
  config.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor("yyyy-MM-dd HH:mm:ss"));        
  jsonResult = JSONObject.fromObject(jsonMap,config);

JsonDateValueProcessor類的程式碼

/** 
* JSON 日期格式處理(java轉化為JSON) 
*/
public class JsonDateValueProcessor implements JsonValueProcessor { 
 
    /** 
     * datePattern 
     */
    private String datePattern = "yyyy-MM-dd"; 
 
    public JsonDateValueProcessor() { 
        super(); 
    } 
 
    /** 
     * 可以根據構造傳入格式化的格式
     */
    public JsonDateValueProcessor(String format) { 
        super(); 
        if(format != null && !"".equals(format)){
            this.datePattern = format; 
        }
    } 
    @Override
    public Object processArrayValue(Object value, JsonConfig jsonConfig) { 
        return process(value); 
    }
    @Override
    public Object processObjectValue(String key, Object value, 
            JsonConfig jsonConfig) { 
        return process(value); 
    } 
//用於格式化date型別的值
    private Object process(Object value) { 
        try { 
            if (value instanceof Date) { 
                SimpleDateFormat sdf = new SimpleDateFormat(datePattern, 
                        Locale.CHINESE); 
                return sdf.format((Date) value); 
            } 
            return value == null ? "" : value.toString(); 
        } catch (Exception e) { 
            return ""; 
        } 
 
    } 
 
    /** 
     * @return the datePattern 
     */
    public String getDatePattern() { 
        return datePattern; 
    } 
 
    /** 
     * @param pDatePattern the datePattern to set 
     */
    public void setDatePattern(String pDatePattern) { 
        datePattern = pDatePattern; 
    } 
 
}

按照上述格式可在頁面中正確顯示日期欄位的資料