第一种:在属性或者get方法上加此注解
// 在属性或者get方法上加此注解 @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private Date createtime;
第二种: 方法内实际转换,对于大数据量,提议使用第一种
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; /** * @author 在属性或者get方法上加入@JsonSerialize(using=DateFormatSerializer.class) * */ public class DateFormatSerializer extends JsonSerializer<Date> { @Override public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String datestr = sdf.format(value); gen.writeString(datestr); } }
第三种:入参解决方案
@Controller @RequestMapping("") public class ProductbaseEditionController extends BaseController { @GetMapping("/productbaseEdition") public String productbaseEdition(@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")Date eTime) { System.out.println("test time:"+eTime); return "productbaseEdition/list"; } }
1.如果前后端传的数据都是json,那么后台接数据,传数据都可以用@JsonFormat。
2.@DateTimeFormat适合后端 接收 前端传来的数据,不管是不是json都可以正确转换成Date型数据,只要前端传来的格式正确且后端@DateTimeFormat的pattern写正确了,但是这个注解无法将Date型数据用json传到后端去。