当前位置: 代码迷 >> Java Web开发 >> springmvc+fastjson 如何自定义日期格式
  详细解决方案

springmvc+fastjson 如何自定义日期格式

热度:932   发布时间:2016-04-13 22:17:11.0
springmvc+fastjson 怎么自定义日期格式
配置文件如下:

<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json</value>
</list>
</property>
<property name="features">
<list>
<value>WriteDateUseDateFormat</value>
</list>
</property>
</bean>

WriteDateUseDateFormat默认日期格式为yyyy-MM-dd HH:mm:ss,如果我的系统统一格式为 yyyy/MM/dd HH:mm:ss,我该怎么配置
------解决思路----------------------

JAVA时间格式化处理
日期格式化
import java.util.Date;
import java.text.SimpleDateFormat;
class dayTime
{
public static void main(String args[])
{
Date nowTime=new Date();
System.out.println(nowTime);
SimpleDateFormat time=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(time.format(nowTime));
}
}
------解决思路----------------------
在那个变量头上加
@JSONField(format="yyyy/MM/dd")这样有用不~
------解决思路----------------------
继承FastJsonHttpMessageConverter,重写里面的方法,使用你重新实现的Converter就可以了
------解决思路----------------------
除楼上各位的方法外,你也可以在转json之前,先转成自己的固定格式,然后去做json转换
------解决思路----------------------
引用:
Quote: 引用:

在那个变量头上加
@JSONField(format="yyyy/MM/dd")这样有用不~

这个需要在每个变量上添加,如果不用fastjson的话,又得一个个去掉,有没有不影响原有代码的方法

哦......要全局的啊?
网上找到个
SerializeConfig sc = new SerializeConfig();
sc.put(Date.class, new SimpleDateFormatSerializer("yyyy/MM/dd HH:mm:ss:SSS"))
然后跟4楼说的那样继承
重写writeInternal

@Override
    protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException,
                                                                             HttpMessageNotWritableException {

        OutputStream out = outputMessage.getBody();
        String text = JSON.toJSONString(obj, features);
        byte[] bytes = text.getBytes(charset);
        out.write(bytes);
    }

 String text = JSON.toJSONString(obj, features);可以加入SerializeConfig 
 String text = JSON.toJSONString(obj, sc, features);
然后可以定义个全局的sc就行了
  相关解决方案