1.首先,直接使用jdbc将数据取数据,注意使用getTimestamp,而不是getTime方法
//在数据库中的时间类型时datetime,在此处要通过getTimeStamp将值取出来
vo.setDepCreateTime(rs.getTimestamp(8));
2.直接调用JSONArray.fromObject(list),装换成JSON对象时,注意:如果list中的变量含有java.util.date对象时,则需要使用JSONConfig进行处理。JsonDateValueProcessor类的代码如下:
package util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
public class JsonDateValueProcessor implements JsonValueProcessor {
private String pattern = "yyyy-MM-dd HH:mm:ss";
//定义两个构造函数,通过第二个构造函数可以自定义时间格式化字符串
public JsonDateValueProcessor() {
super();
}
public JsonDateValueProcessor(String format) {
this.pattern = format;
}
public Object processArrayValue(Object arg0, JsonConfig arg1) {
// TODO Auto-generated method stub
return process(arg0);
}
public Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) {
// TODO Auto-generated method stub
return process(arg1);
}
private Object process(Object val){
if(val instanceof Date&& val!=null){
SimpleDateFormat sdf=new SimpleDateFormat(this.pattern,Locale.CHINESE);
System.out.println("date format by valueProcess:"+sdf.format(val));
return sdf.format(val);
}else
return val==null?"":val.toString();
}
}
在jsonarray进行转换时,这样调用:
JsonConfig config = new JsonConfig(); config.registerJsonValueProcessor(Date.class,new JsonDateValueProcessor()); arr=JSONArray.fromObject(result,config);