Postman传日期字符串成功的关键在于前后端注解与格式严格匹配:GET请求用@DateTimeFormat处理URL参数,POST JSON用@JsonFormat处理实体字段,且pattern、类型、时区须完全一致。

Postman 传日期字符串,关键不在“怎么填”,而在于后端是否能接住——@DateTimeFormat 没配对、@RequestBody 用错位置、JSON 字段类型不匹配,填得再标准也 400 或 null。
Postman GET 请求传日期字符串(如 updateTime=2025-11-04)
这是最常踩坑的场景:前端用表单或 URL 拼参传日期,后端却没声明格式或类型不兼容。
- 确保 Controller 方法形参名和 URL 参数名完全一致(大小写敏感),例如 URL 是
?birthDate=1990-05-20,那方法参数就得叫birthDate - 必须加
@DateTimeFormat(pattern = "yyyy-MM-dd")注解,且 pattern 要和你实际传的格式严丝合缝;传2025/11/04却写yyyy-MM-dd,直接报 400 - 推荐用
LocalDate接收纯日期,LocalDateTime接收带时间的(如2025-11-04 14:30:00),别用老式Date,时区容易出乱子 - GET 请求不能在 Body 里塞 JSON,日期只能走 query string —— 别在 Body 选 raw + JSON 还硬传,后端根本收不到
Postman POST 请求传 JSON 中的日期字段(如 {"name":"Alice","hireDate":"2024-08-15"})
这里不是“填对格式就行”,而是整个解析链路要对齐:JSON 字符串 → Jackson 反序列化 → 实体类字段 → 注解支持。
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
- Header 必须设
Content-Type: application/json,Postman 选 Body → raw → JSON 后会自动加,但手动删过或切回 form-data 就可能丢 - 实体类中日期字段不能只写
LocalDate hireDate;,得配上@JsonFormat(pattern = "yyyy-MM-dd"),否则 Jackson 默认不认字符串转LocalDate - 如果用了 Lombok,
@Data不会自动生成LocalDate的 setter/getter 兼容性逻辑,建议显式写 getter/setter 或确认 Lombok 版本 ≥1.18.20 - Postman 里 JSON 值必须是双引号包裹的字符串,
"hireDate": "2024-08-15"✅,"hireDate": 2024-08-15❌(这会被当数字,Jackson 解析失败)
@DateTimeFormat 和 @JsonFormat 到底该用哪个?
一句话区分:@DateTimeFormat 管 URL 参数和表单参数(@RequestParam / @ModelAttribute),@JsonFormat 管 JSON 请求体(@RequestBody)。混用就失效。
- GET 请求带
?date=2025-11-04→ 用@DateTimeFormat配在方法参数上 - POST 请求 Body 是
{"date":"2025-11-04"}→ 用@JsonFormat配在实体类字段上 - 如果一个接口既支持 GET 查询又支持 POST 提交,两个注解得分别加在不同地方,缺一不可
- 注意:Spring Boot 3+ 默认禁用
Jackson2ObjectMapperBuilder的部分特性,若发现@JsonFormat不生效,检查是否漏了spring.jackson.date-format或spring.jackson.serialization.write-dates-as-timestamps=false配置
最容易被忽略的是时区。哪怕 pattern 对了、注解写了、JSON 格式合法,只要前端传的是 "2025-11-04T00:00:00Z" 这种 ISO 8601 带时区的格式,而后端没配 @JsonFormat(timezone = "GMT+8"),结果就可能差 8 小时。别等上线后查日志才发现用户入职日期全错了一天。










