做接口开发时经常需要给前端返回日期数据,比如生日、创建时间、更新时间等。我们一般是建一个bean,将定义所需要的字段,并和数据库的字段相对应。虽然数据库的字段是日期类型的,但bean的字段定义在String就行了,看下面的测试代码:
package com.bs.test;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
public class DateTest {
public static void main(String[] args) {
UserBean user = new UserBean();
user.setName("张三");
user.setBirth(new Date());
String jsonString = JSON.toJSONString(user, SerializerFeature.WriteMapNullValue);
System.out.println(jsonString);
//输出:{"birth":"2017-09-08 11:09:23","name":"张三"}
}
}
class UserBean{
private String name;
private String birth;//这里不是Date类型
public String getName() {
return name;
}
public String getBirth() {
return birth;
}
public void setName(String name) {
this.name = name;
}
public void setBirth(Date birth) {//注意这里的入参是Date类型
if(birth == null){
this.birth = "";
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
this.birth = sdf.format(birth);
}
}
关键部分在setBirth()方法的入参是Date类型,在这里将date转成指定格式的日期字符串。这个方法是我们自己的实现方式,当然可以使用某些框架带的注解方式。