`

JSON格式化的Date对象在EXTJS grid中显示

阅读更多
使用EXTJS的时候,在后台通常使用的是JSON传递数据,也就是使用到了json-lib包,但在使用中碰见了这么一个问题,就是结果json格式化的时间对象,是这样一个格式:
{"date":6,"day":4,"hours":16,"minutes":46,"month":4,"nanos":0,"seconds":35,"time":1273135595000,"timezoneOffset":-480,"year":110}

而我们期望的格式如下:yyyy-MM-dd HH:mm:SS

网上有几种办法,但是我觉得最好的还是使用JsonConfig这个来控制Date对象的格式,
JsonConfig cfg = new JsonConfig();
cfg.registerJsonValueProcessor(java.util.Date.class,new DateJsonValueProcessor());

转化的时候,带上cfg这个参数
JSONArray array = JSONArray.fromObject(list, cfg);
这样就实现了控制时间格式的需求了。
其中的DateJsonValueProcessor是我们自己创建的时间字段处理器,实现了JsonValueProcessor接口,代码如下:
package com.scsk.common;

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
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; 
	public DateJsonValueProcessor() { 
    this(DEFAULT_DATE_PATTERN); 
	} 
	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 instanceof Timestamp)
			return dateFormat.format((Timestamp) value);
		else if(value instanceof Date)
			return dateFormat.format((Date) value);
		else if(value==null)
			return "";
		else
			return value.toString();
	}
} 

记得在Reader(JsonReader)中的时间字段把dateFormat制定哦,这里应该使用dateFormat: 'Y-m-d H:i:s'
这样就可以在grid中显示时间了,当然根据这个原理, 你可以随意制定要格式化的时间格式!
分享到:
评论

相关推荐

    ExtJs中处理后台传过来的date对象显示到页面上

    在ExtJs中处理后台传递的Date对象并将其正确地显示在页面上,通常涉及到数据模型(Model)、存储(Store)、列模型(ColumnModel)以及渲染器(Renderer)的配置。以下是一个详细的步骤说明: 1. **创建数据模型...

    extjs&使用grid显示数据参照.pdf

    在EXTJS中,GridPanel是一种强大的组件,常用于展示结构化的数据,类似于电子表格。它提供了用户友好的界面,能够方便地从服务器或数据库加载数据并进行显示。本章主要探讨如何利用GridPanel来实现这一功能。 首先...

    EXTJS.GRIDPANEL 日期格式

    这里的`dateFormat`属性定义了字段在JSON数据中的日期格式,当数据加载到store时,ExtJS会根据这个格式解析日期字符串。 ### 二、日期显示格式 在GridPanel中,可以通过`renderer`属性自定义单元格的显示格式。`...

    EXTJS实用开发指南_个人整理笔记.pdf

    3. 实用工具(Utils):提供了许多实用工具,如数据内容格式化、JSON数据解码或反解码、对Date、Array、发送Ajax请求、Cookie管理、CSS管理等扩展等功能。 二、EXTJS应用程序的基本结构 EXTJS应用程序的基本结构...

    ExtJSWeb应用程序开发指南(第2版)

    6.8 Ext.util.Format提供常用的格式化方法 6.8.1 ellipsis() 6.8.2 capitalize() 6.8.3 date() 6.8.4 htmlEncode() 6.8.5 htmlDecode() 6.8.6 stripTags() 6.8.7 substr() 6.8.8 lowercase...

    extjs核心api详解

    这些方法提供了丰富的功能,如事件绑定、对象拷贝、JSON编码解码、DOM操作、组件管理等,是extjs开发中不可或缺的一部分。 总之,extjs核心api详解是一个全面而深入的指南,它不仅介绍了extjs的基本概念和api,还...

    ext grid 基本功能的学习 另付js 对上周月季度的计算等

    1. **数据加载**:在Ext Grid中,数据通常通过Store进行加载。你可以配置Store的URL指向服务器端接口,实现异步数据加载。此外,还可以设置Store的proxy属性,定义数据获取的方式,如Ajax或Direct。 2. **定时器...

    ExtJS Web应用程序开发指南

    4. **数据封装**:可以使用JSON或XML格式发送和接收数据,ExtJS提供了解析和序列化这两种格式的工具。 5. **错误处理**:支持错误回调函数,用于处理网络错误或服务器返回的错误状态。 6. **缓存控制**:通过`cache:...

    Extjs4 GridPanel 的几种样式使用介绍

    在本文中,我们将深入探讨ExtJS4中的GridPanel样式及其选择模式。GridPanel是ExtJS框架中用于展示数据的一种重要组件,它允许用户以表格形式查看、操作和管理大量信息。 首先,我们来看一个简单的GridPanel示例。在...

    extjs-grid-row-editing-php-backend

    在ExtJS中,Grid组件是用于展示和操作大量结构化数据的核心组件。Row Editing插件为Grid提供了一种用户友好的编辑模式,允许用户直接在表格行内编辑单元格数据,而不是打开单独的编辑窗口。这个项目中的源代码演示了...

    asp.net Ext grid 显示列表

    在后端代码中,我们创建了一个简单的员工列表,并将其序列化为JSON格式返回给前端。注意,这里的`total`字段表示总记录数,`rows`字段包含了实际的数据列表。 #### 四、总结 通过上述步骤,我们可以实现一个基本的...

    Ext Js权威指南(.zip.001

    8.1.3 格式化输出数据:ext.string、ext.number、ext.date和ext.util.format / 389 8.1.4 超级模板:ext.xtemplate(包括ext.xtemplateparser和ext.xtemplatecompiler) / 393 8.1.5 模板的方法 / 396 8.2 组件...

    ExtJS 2.0实用简明教程 之Ext类库简介

    例如,数据内容格式化工具可以帮助处理显示和输入的数据,JSON解码和编码函数则简化了与服务器端的JSON数据交换。此外,还有日期(Date)、数组(Array)、Ajax请求、Cookie管理和CSS管理等实用工具,它们大大简化了...

    Rails GUI Development with Ext JS 10-Jan-08 RUG-B.pdf

    - **Controller(控制器)**:作为 RESTful Web 服务,提供特殊格式 `ext_json`,处理页面流控制和重定向等。 - **View(视图)**:负责布局、DOM 结构,并包含 JavaScript 代码,用于程序化地操作 GUI 和交互逻辑。...

Global site tag (gtag.js) - Google Analytics