You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中getAll()接口返回时间戳而非格式化日期的问题咨询

解答:API返回时间戳而非格式化日期是Spring默认行为,并非实现错误

这其实不是你的代码实现有问题,而是Spring Boot中默认的日期序列化规则导致的,属于非常普遍的场景~

原因分析

当你的Java实体类中用Date、LocalDateTime这类日期类型映射MySQL的日期字段时,Spring默认使用Jackson进行JSON序列化。Jackson为了保证日期数据的通用性(跨语言、跨系统解析更稳定),会把日期对象默认序列化成毫秒级时间戳,也就是你看到的1519561301000,而不是数据库里展示的格式化字符串2018-02-25 20:10:29——毕竟数据库里的格式化只是存储的展示形式,Java程序拿到的是日期对象,序列化时遵循Jackson的默认规则。

解决方法

你可以通过几种方式让API返回格式化后的日期字符串:

1. 全局配置(推荐,统一所有日期字段格式)

在application.properties或application.yml中添加Jackson的日期格式化配置:

# application.properties
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

如果用YAML格式:

# application.yml
spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

配置后,所有日期类型的字段都会按照指定格式返回字符串。

2. 局部字段注解(针对单个字段定制)

如果只想让creationdate字段返回格式化日期,在实体类的对应字段上添加@JsonFormat注解:

// 针对java.util.Date类型
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date creationdate;

// 如果用Java 8的LocalDateTime
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime creationdate;

注意:如果使用Java 8的日期API(LocalDate/LocalDateTime等),需要确保项目中引入了jackson-datatype-jsr310依赖,Spring Boot的spring-boot-starter-web通常已经包含了这个依赖,如果没有的话可以手动添加。

3. 自定义序列化器(复杂场景使用)

如果有特殊的日期格式化需求(比如根据不同场景返回不同格式),可以自定义Jackson序列化器,然后通过@JsonSerialize注解绑定到字段上:

public class CustomDateSerializer extends StdSerializer<Date> {
    private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    public CustomDateSerializer() {
        this(null);
    }

    public CustomDateSerializer(Class<Date> t) {
        super(t);
    }

    @Override
    public void serialize(Date value, JsonGenerator gen, SerializerProvider provider) throws IOException {
        gen.writeString(sdf.format(value));
    }
}

然后在字段上使用:

@JsonSerialize(using = CustomDateSerializer.class)
private Date creationdate;

总结

这种时间戳返回是Spring的默认行为,完全正常,你只需要根据自己的需求选择上面的一种方式调整序列化规则即可。

内容的提问来源于stack exchange,提问作者Deepak Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:06:49