Springmvc injects string and time format conversion

The following lists the two time conversions supported by spring
-, method one
   1, string to time
   
 
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date startTime;

   2. The string can also be converted to time. This can be loaded with the controller control layer.
  
@InitBinder  
public void initBinder(WebDataBinder binder) {  
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");  
dateFormat.setLenient(false);  
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));

  3. Time to string
  @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date startTime;
2. Method 2 (serialization)
   JsonSerialize: time is a string Format
   JsonDeserialize: string to time
  
    @JsonSerialize(using = JsonDateSerializer$19.class)
    @JsonDeserialize(using = JsonDateDeserializer$19.class)
    private Date updateTime;

  
package com.ppfuns.mediaasset.core.common;

import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.SerializerProvider;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

@Component
public class JsonDateSerializer$19 extends JsonSerializer<Date> {

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    @Override
    public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException,
            JsonProcessingException {
        String formattedDate = formatter.format(value);
        jgen.writeString(formattedDate);
    }
}
  

 
package com.ppfuns.mediaasset.core.common;

import org.apache.commons.lang.StringUtils;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.DeserializationContext;
import org.codehaus.jackson.map.JsonDeserializer;

import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * TODO: String to time format is yyyy-MM-dd HH:mm:ss
 *
 * @author jiandequn
 * @date 2014-6-24 10:07:19 AM
 * @version 0.1.0
 * @copyright yougou.com
 */
public class JsonDateDeserializer$19 extends JsonDeserializer<Date> {

	private DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	@Override
	public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
		String str = jp.getText().trim();
		if (StringUtils.isEmpty(str)) {
			return null;
		}
		try {
			return formatter.parse(str);
		} catch (ParseException e) {
			e.printStackTrace ();
			return null;
		}
	}

}
 
MAVEN dependent packages
   <dependency>
 3             <groupId>org.codehaus.jackson</groupId>
 4             <artifactId>jackson-mapper-asl</artifactId>
 5             <version>${jackson.version}</version>
 6         </dependency>
 7         <dependency>
 8             <groupId>com.fasterxml.jackson.core</groupId>
 9             <artifactId>jackson-core</artifactId>
10             <version>${jackson.core.version}</version>
11         </dependency>
12         <dependency>
13             <groupId>com.fasterxml.jackson.core</groupId>
14             <artifactId>jackson-databind</artifactId>
15             <version>${jackson.core.version}</version>
16         </dependency>
17
18
19 <properties>
20         <jackson.version>1.9.13</jackson.version>
21         <jackson.core.version>2.4.2</jackson.core.version>
22 </properties>

  

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326291437&siteId=291194637