-, 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>