springmvc+fastjson 怎么自定义日期格式

空白-键 2015-10-16 05:36:41
配置文件如下:

<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,我该怎么配置
...全文
951 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
空白-键 2015-10-19
我在官网看到这么一句话:

全局修改日期格式

  JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
  JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);

看了下源代码,JSON.DEFFAULT_DATE_FORMAT并不是final类型的,所以官方推荐的方法应该是直接修改这个字段值,我原先是想有没有可能仅仅通过配置文件配置下就可以,现在看来应该是不行,不过这个方法也够简单了,谢谢各位回答
回复
scmod 2015-10-18
引用 3 楼 linminqin 的回复:
[quote=引用 2 楼 scmod 的回复:] 在那个变量头上加 @JSONField(format="yyyy/MM/dd")这样有用不~
这个需要在每个变量上添加,如果不用fastjson的话,又得一个个去掉,有没有不影响原有代码的方法[/quote] 哦......要全局的啊? 网上找到个 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就行了
回复
除楼上各位的方法外,你也可以在转json之前,先转成自己的固定格式,然后去做json转换
回复
疯狂熊猫人 2015-10-17
继承FastJsonHttpMessageConverter,重写里面的方法,使用你重新实现的Converter就可以了
回复
空白-键 2015-10-17
引用 2 楼 scmod 的回复:
在那个变量头上加 @JSONField(format="yyyy/MM/dd")这样有用不~
这个需要在每个变量上添加,如果不用fastjson的话,又得一个个去掉,有没有不影响原有代码的方法
回复
scmod 2015-10-16
在那个变量头上加 @JSONField(format="yyyy/MM/dd")这样有用不~
回复
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)); } }
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-10-16 05:36
社区公告
暂无公告