import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Test;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatsDemo {
/**
* 默认情况下,Jackson 会将 java.util.Date 对象序列化为其 long 值,这是自 1970 年 1 月 1 日以来的毫秒数。
* 然而,Jackson 也支持将日期格式化为字符串。
*
* @throws JsonProcessingException
*/
@Test
public void test1() throws JsonProcessingException {
Transaction transaction = new Transaction("transfer", new Date());
ObjectMapper objectMapper = new ObjectMapper();
String output = objectMapper.writeValueAsString(transaction);
System.out.println(output);
}
/**
* Date 的长序列化格式对于人类来说不是很可读。
* 因此 Jackson 也支持文本日期格式。
* 您可以通过在 ObjectMapper 上设置 SimpleDateFormat 来指定要使用的确切 Jackson 日期格式。
*
* @throws JsonProcessingException
*/
@Test
public void test2() throws JsonProcessingException {
Transaction transaction = new Transaction("transfer", new Date());
ObjectMapper objectMapper = new ObjectMapper();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
objectMapper.setDateFormat(dateFormat);
String output = objectMapper.writeValueAsString(transaction);
System.out.println(output);
}
public class Transaction {
private String type = null;
private Date date = null;
public Transaction() {
}
public Transaction(String type, Date date) {
this.type = type;
this.date = date;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
}