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,我该怎么配置
...全文
1107 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
空白-键 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)); } }

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧