@JsonSerialize(using = DateSerializer.class)
private long date;
如何自定义时间格式 ex yyyy-MM-dd HH:mm:ss , yyyy-MM-dd
我建议使用@JsonSerialize将长毫秒转换为所需的日期格式。
下面是示例。
波乔类
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import org.springframework.data.util.Pair;
/**
* Created by yprajapati on 19/09/2019.
*/
public @Data
class Test {
private long date;
@JsonSerialize(using = DateSerializerCustom.class)
private Pair formattedDate;
public Pair getFormattedDate() {
return Pair.of(date, "yyyy-MM-dd HH:mm"); // Here you can add your desired date format
}
}
日期序列化程序
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.springframework.data.util.Pair;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
/**
* Created by yprajapati on 19/09/2019.
*/
public class DateSerializerCustom extends JsonSerializer<Pair<Long, String>> {
public void serialize(Pair<Long, String> pair, JsonGenerator jsonGen, SerializerProvider serProv) throws IOException {
DateFormat sdf = new SimpleDateFormat(pair.getSecond());
String formattedDate = sdf.format(pair.getFirst());
jsonGen.writeString(formattedDate);
}
}
主应用
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* Created by yprajapati on 19/09/2019.
*/
public class MainApp {
public static void main(String[] args) throws JsonProcessingException {
Test test = new Test();
test.setDate(1568866827596L);
System.out.println(new ObjectMapper().writeValueAsString(test));
}
}
输出
{"date":1568866827596,"formattedDate":"2019-09-19 09:50"}
注意:在这里我添加了额外的字段。将其标记为@Transient
因为它不会成为持久性的一部分。