Oracle数据库查询的结果中有时间格式时,在将它json格式化时的处理方式有两种:
第一,sql语句时,就将其转换成字符串。例如:select to_char(start_time,'yyyy-mm-dd HH24:mi:ss'), name from table;
这种情况下,时间以字符串格式被处理。但是这种写法,生成的json格式的字符串中,start_time字段其实以to_char(start_time,'yyyy-mm-dd HH24:mi:ss')出现,所以,前台处理时记得要写成to_char(start_time,'yyyy-mm-dd HH24:mi:ss')而不是字段名start_time。
第二,sql语句时不处理,例如:select start_time, name from table; 但是处理查询结果时,直接rs.getDate时,结果会吧时间内容丢失,变成‘00:00:00’的时间。所以,要使用如下方式:
Object v = rs.getObject(i);
if(v!=null &&(v.getClass()==Date.class || v.getClass()==java.sql.Date.class))
{ Date time=new Date(rs.getTimestamp(i).getTime());
SimpleDateFormat formattime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String pubtime=formatime.format(time);}
这样,前台继续使用字段名start_time就ok!