net.sf.json 日期类型格式化输出

Date, Timestamp ;

编写工具类

package cn.jorcen.commons.util;

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 {
/**
* 字母 日期或时间元素 表示 示例 <br>
* G Era 标志符 Text AD <br>
* y 年 Year 1996; 96 <br>
* M 年中的月份 Month July; Jul; 07 <br>
* w 年中的周数 Number 27 <br>
* W 月份中的周数 Number 2 <br>
* D 年中的天数 Number 189 <br>
* d 月份中的天数 Number 10 <br>
* F 月份中的星期 Number 2 <br>
* E 星期中的天数 Text Tuesday; Tue<br>
* a Am/pm 标记 Text PM <br>
* H 一天中的小时数(0-23) Number 0 <br>
* k 一天中的小时数(1-24) Number 24<br>
* K am/pm 中的小时数(0-11) Number 0 <br>
* h am/pm 中的小时数(1-12) Number 12 <br>
* m 小时中的分钟数 Number 30 <br>
* s 分钟中的秒数 Number 55 <br>
* S 毫秒数 Number 978 <br>
* z 时区 General time zone Pacific Standard Time; PST; GMT-08:00 <br>
* Z 时区 RFC 822 time zone -0800 <br>
*/
public static final String Default_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
private DateFormat dateFormat; public DateJsonValueProcessor(String datePattern) {
try {
dateFormat = new SimpleDateFormat(datePattern);
} catch (Exception e) {
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) {
return dateFormat.format((Date) value); }
}

测试类:

/**
*
*/
package cn.jorcen.commons.util; import java.sql.Timestamp;
import java.util.Date;
import java.util.HashMap;
import java.util.Map; import net.sf.json.JsonConfig; import com.alibaba.fastjson.serializer.SerializerFeature; /**
*
* 统一Json出口
*
* @author mjorcen
* @email mjorcen@gmail.com
* @dateTime Jun 4, 2014 4:11:20 PM
* @version 1
*/
public class FastJosnUtil {
public static final String toJson(Object obj) {
return toNetSFJson(obj);
} private static String toNetSFJson(Object obj) {
JsonConfig config = new JsonConfig();
config.registerJsonValueProcessor(Date.class,
new DateJsonValueProcessor("yyyy-MM-dd hh:mm:ss"));
config.registerJsonValueProcessor(Timestamp.class,
new DateJsonValueProcessor("yyyy-MM-dd hh:mm:ss"));
String objStr = net.sf.json.JSONObject.fromObject(obj, config)
.toString();
return objStr;
} public static final String toFastJson(Object obj) {
String objStr = com.alibaba.fastjson.JSONObject.toJSONString(obj,
SerializerFeature.WriteDateUseDateFormat,
SerializerFeature.WriteMapNullValue);
return objStr;
} public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("time", new Date());
map.put("name", "yy");
map.put("age", 20);
map.put("timestamp", new Timestamp(System.currentTimeMillis()));
System.out.println(toJson(map));
}
}

结果:

{"timestamp":"2014-06-10 05:54:11","time":"2014-06-10 05:54:11","age":20,"name":"yy"}

net.sf.json日期类型格式化输出的更多相关文章

  1. SpringMVC在使用Jackson2时关于日期类型格式化的问题

    SpringMVC在使用Jackson2时关于日期类型格式化的问题 如果无效,那么使用 @DateTimeFormat(pattern = "yyyy-MM-dd")

  2. 模拟实现JSON.stringiry 的格式化输出

    前言 这是一道笔试题,要求模拟实现JSON.stringiry 的格式化输出,按照层级缩进,输出易读格式,即完成以下方法 JSON.stringify(jsObj, null, 4); // 缩进4个 ...

  3. JSON字符串控制台格式化输出 java

    1.正常情况下返回的json数据格式如下: {"header":{"transSn":"e33128bb7622462ebfb2cbfcc46baa1 ...

  4. 编写Java程序,使用日期处理类实现日期的格式化输出

    返回本章节 返回作业目录 需求说明: 按"yyyy-MM-dd"格式输入一个字符串型日期,然后输出这个日期为本年中的第几周. 实现思路: 使用SimpleDateFormat格式化 ...

  5. 1、Python 日期时间格式化输出

    今天帮朋友写自动化脚本,又需要用格式化日期,又忘记怎么写了,还是写到自己博客里面,方便日后需要的时候看一眼吧.So,临时加一篇 Python 的文章. 1.Python的time模块 import t ...

  6. nodejs写入json文件,格式化输出json的方法

    假如我需要把data序列化成json字符串,然后写入data.json文件中,代码如下: let str = JSON.stringify(data) fs.writeFile('data.json' ...

  7. 008、MySQL日期时间格式化输出

    #日期格式化 SELECT date_format( '2008/08/08 22:23:01', '%Y-%m-%d-%H--%i--%s' ); 不忘初心,如果您认为这篇文章有价值,认同作者的付出 ...

  8. Asp MVC 中处理JSON 日期类型

    注:时间有点忙,直接copy 过来的,要查看原址: http://www.developer.com/net/dealing-with-json-dates-in-asp.net-mvc.html I ...

  9. json日期字符串格式化时间

    var str = '/Date(1333245600000+0800)/';   function data_string(str) {     var d = eval('new ' + str. ...

随机推荐

  1. 远程通信Socket

    网络通信高性能的三个主题: 1) 传输:用什么样的通道将数据发送给对方,BIO.NIO或者AIO,IO模型在很大程度上决定了框架的性能: 2) 协议:采用什么样的通信协议,HTTP或者内部私有协议.协 ...

  2. casperjs 抓取爱奇艺高清视频

    CasperJS 是一个开源的导航脚本和测试工具,使用 JavaScript 基于 PhantomJS 编写,用于测试 Web 应用功能,Phantom JS是一个服务器端的 JavaScript A ...

  3. 【转】Error: no `server' JVM at `C:\Program Files\Java\jre6\bin\server\jvm.dll'.解决办法

    出现问题: 用java -jar XXX.jar -server -Xms900m -Xmx900m 或者 java -server -version 提示错误 Error: no `server' ...

  4. JavaScript基础-面向对象编程<2>

    2.动态添加,修改和删除对象属性和方法 例如:用类Object()创建一个空对象user,然后修改其行为. (1) 添加属性 var user=new Object(); //创建一个没有属性和方法的 ...

  5. javascript 正则 验证 第25节

    <html> <head> <title>Form对象</title> <script type="text/javascript&qu ...

  6. (转)使用inotify、inotify_add_watch、inotify_rm_watch、read编写监控程序

    转自:http://blog.csdn.net/myarrow/article/details/7096460 inotify是什么 inotify是文件系统变化通知机制,在监听到文件系统变化后,会向 ...

  7. Headfirst设计模式的C++实现——组合模式(Composite)

    menu_component.h #ifndef _MENU_COMPONENT_H_ #define _MENU_COMPONENT_H_ #include <string> class ...

  8. iOS 详细解释@property和@synthesize关键字

    /** 注意:由@property声明的属性 在类方法中通过下划线是获取不到的 必须是通过 对象名.属性 才能获取到!- @property和@synthesize关键字是针对成员变量以及get/se ...

  9. VPN client on linux debian

    Install the pptp-linux and pptp-linux-client: sudo apt-get install pptp-linux pptp-linux-client Crea ...

  10. java 的输入/输出

    java 的输入/输出 java的 I/O是通过java.io包下的类和接口支持, 其中最重要的是5个类,分别是 File,OutputStream,InputStream, Write,Reader ...