zoukankan      html  css  js  c++  java
  • springMVC返回的json日期为Long的格式化

     

    springMVC返回的json日期为Long的格式化

    标签: spring mvcjson格式化mybatis时间
     分类:

    springMVC+myBatis查询数据,得到date类型数据,返回json日期为Long数字(毫秒数)的日期格式化方案: 
    1、springMVC配置文件统一返回格式:

     1 <mvc:annotation-driven>  
     2     <!-- 处理responseBody 里面日期类型 -->  
     3         <mvc:message-converters>  
     4             <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">  
     5                 <property name="objectMapper">  
     6                     <bean class="com.fasterxml.jackson.databind.ObjectMapper">  
     7                         <property name="dateFormat">  
     8                             <bean class="java.text.SimpleDateFormat">  
     9                                 <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />  
    10                             </bean>  
    11                         </property>  
    12                     </bean>  
    13                 </property>  
    14             </bean>  
    15         </mvc:message-converters>  
    16     </mvc:annotation-driven>

    2、jackson 注解处理

    @JsonFormat  :
            此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createtime;
    
    
    @JsonIgnoreProperties : 
             此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。  
    
    @JsonIgnore  :
             此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。 
    
    @JsonSerialize  
    
     // 反序列化一个固定格式的Date    
        @JsonDeserialize(using = CustomDateDeserialize.class)    
        public void setBirthday(Date birthday) {    
            this.birthday = birthday;    
        }   
    
     // 序列化指定格式的double格式    
        @JsonSerialize(using = CustomDoubleSerialize.class)    
        public double getSalary() {    
            return salary;    
        }    
    
    自定义一个格式化类:
    public class CustomDateDeserialize extends JsonDeserializer<Date> {    
    
        private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");    
    
        @Override    
        public Date deserialize(JsonParser jp, DeserializationContext ctxt)    
                throws IOException, JsonProcessingException {    
    
            Date date = null;    
            try {    
                date = sdf.parse(jp.getText());    
            } catch (ParseException e) {    
                e.printStackTrace();    
            }    
            return date;    
        }    
    }    

    3、自定义注解

    import java.io.IOException;  
    import java.text.SimpleDateFormat;  
    import java.util.Date;  
    
    import com.fasterxml.jackson.core.JsonGenerator;  
    import com.fasterxml.jackson.core.JsonProcessingException;  
    import com.fasterxml.jackson.databind.JsonSerializer;  
    import com.fasterxml.jackson.databind.SerializerProvider;  
    
    /**  
     * ClassName:DateJsonSerializer <br/>  
     * Function: 日期类型格式化,格式化为:yyyy-MM-dd HH:mm:ss 格式. 用法如下:<br/>  
     * Reason:   @JsonSerialize(using=DateJsonSerializer.class) 
     *           @Column(name="BIRTHDAY") 
     *           public Date getBirthday() { 
     *              return birthday; 
     *           } 
     *          . <br/>  
     * Date:     2014年7月10日 下午1:26:08 <br/>  
     * @author   zhangzhaoyu  
     * @version   1.0 
     * @since    JDK 1.7  
     * @see        
     */  
    public class DateJsonSerializer extends JsonSerializer<Date> {  
    
        @Override  
        public void serialize(Date value, JsonGenerator jgen,  
                SerializerProvider provider) throws IOException,  
                JsonProcessingException {  
             SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
             String formattedDate = formatter.format(value);  
             jgen.writeString(formattedDate);  
        }  
    }    
     
  • 相关阅读:
    List of the best open source software applications
    Owin对Asp.net Web的扩展
    NSwag给api加上说明
    'workspace' in VS Code
    unable to find valid certification path to requested target
    JMeter的下载以及安装使用
    exception disappear when forgot to await an async method
    Filter execute order in asp.net web api
    记录web api的request以及response(即写log)
    asp.net web api的源码
  • 原文地址:https://www.cnblogs.com/liuyingke/p/7491063.html
Copyright © 2011-2022 走看看