• 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

  • 相关阅读:
    SQL Server参数化查询
    MySQL平台数据库备份方案详细说明
    Android 关机弹出菜单
    android 4.1源码下载方法最新实例教程
    教你如何创建类似QQ的android弹出菜单
    三足鼎立已深入人心 移动开发平台前景展望
    Android上的蓝牙通信功能的开发:BluetoothChat例程分析
    Android经典动画案例分析
    Android使用FileObserver对sdcard文件或文件夹监控
    如何提高Android用户体验
  • 原文地址:https://www.cnblogs.com/fps2tao/p/13528671.html
Copyright © 2020-2023  润新知