zoukankan      html  css  js  c++  java
  • spring处理数据库中Date类型字段转换成时间戳问题

    有两种方式可以解决日期转换Json问题:

    1、(不推荐)局部修改,自定义注解进行将日期类型转换为Date类型。

    2、(强烈推荐)全局修改,用MappingJackson2HttpMessageConverter配置在XML(SpringMVC)或者配置在Application.Java启动类(Spring boot、Spring cloud)。

    配置在Application.Java启动类(Spring boot、Spring cloud):

    @Bean
        public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() {
            MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
            //设置日期格式
            ObjectMapper objectMapper = new ObjectMapper();
            SimpleDateFormat smt = new SimpleDateFormat("yyyy-MM-dd");
            objectMapper.setDateFormat(smt);
            mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper);
            //设置中文编码格式
            List<MediaType> list = new ArrayList<MediaType>();
            list.add(MediaType.APPLICATION_JSON_UTF8);
            mappingJackson2HttpMessageConverter.setSupportedMediaTypes(list);
            return mappingJackson2HttpMessageConverter;
        }

    配置在XML(SpringMVC):

    <mvc:annotation-driven>  
        <mvc:message-converters>  
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">  
                <property name="objectMapper" ref="customObjectMapper"/>
            </bean>  
        </mvc:message-converters>  
    </mvc:annotation-driven> 

    自定义objectMapper:

    public class CustomObjectMapper extends ObjectMapper {    
        
        public CustomObjectMapper() {    
            CustomSerializerFactory factory = new CustomSerializerFactory();    
            factory.addGenericMapping(Date.class, new JsonSerializer<Date>() {    
                @Override    
                public void serialize(Date value, JsonGenerator jsonGenerator,    
                        SerializerProvider provider) throws IOException, JsonProcessingException {    
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    
                    jsonGenerator.writeString(sdf.format(value));    
                }    
            });    
            this.setSerializerFactory(factory);    
        }    
    }

    注意:如果想要单个bean的某个日期字段显示年月日时分秒的话,只需要在对应日期的get方法上添加@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")即可。

    转 : https://my.oschina.net/u/3672057/blog/1844715

  • 相关阅读:
    微软推出的免费新书《Introducing Microsoft SQL Server 2012》
    关于Installshield中Ie8\Ie9\SQL Server 2008 R2 Native Client等Prq文件在线下载地址
    PowerDesigner批量生成日期型、中文字符型、数字型测试数据
    在服务器上使用第三方独立组件对Word/Excel进行编程
    文明源自谎言
    中文写程序,何陋之有?
    在线网摘收藏?让Google来吧!
    下载文件时根据MIME类型自动判断保存文件的扩展名
    谨慎注意WebBrowser控件的DocumentCompleted事件
    你的命运谁攥着?
  • 原文地址:https://www.cnblogs.com/fps2tao/p/13528671.html
Copyright © 2011-2022 走看看