SpringCloud OpenFegin 传递Date类型的参数时,接收端多出14个小时的问题

SpringCloud OpenFegin 传递Date类型的参数时,接收端多出14个小时的问题

1. OpenFegin写法

入参:

"startTime": "2024-01-16 00:00:00", "endTime": "2024-01-18 23:59:59",

java 复制代码
@GetMapping("/queryDisposalComplete")

JsonResult<Map<String, List<Dto>>> queryDisposalComplete(@RequestParam(value = "startTime", required = false) Date  startTime,  
 @RequestParam(value = "endTime", required = false) Date endTime);
java 复制代码
    @GetMapping("/queryDisposalComplete")
    public JsonResult<Map<String, List<Dto>>>> queryDisposalCompleter(@RequestParam(value = "startTime", required = false)  Date startTime,
                                                                                        @RequestParam(value = "endTime", required = false)  Date endTime) {
        log.info("startTime:{},endTime:{}", JSONObject.toJSONString(startTime),JSONObject.toJSONString(endTime));
        Map<String, List<Dto>> map = service.queryDisposalComplete(startTime,endTime);
        return  JsonResult.ok( map);
    }

对应log

java 复制代码
 startTime:1705384800000,endTime:1705557599000

Unix 时间戳 转成 北京时间startTime: 2024-01-16 14:00:00 endTime:2024-01-18 13:59:59

时间多了,

2. 既然用Date 接收导致时间多了,那么改用String 是不是就可以接收到原始数据了
java 复制代码
@GetMapping("/queryDisposalComplete")
JsonResult<Map<String, List<Dto>>> queryDisposalComplete(@RequestParam(value = "startTime", required = false) String startTime,  
 @RequestParam(value = "endTime", required = false) String endTime);

然后根据String 类型转成Date即可。

相关推荐
你的人类朋友1 小时前
说说签名与验签
后端
databook1 小时前
Manim实现脉冲闪烁特效
后端·python·动效
canonical_entropy5 小时前
AI时代,我们还需要低代码吗?—— 一场关于模型、演化与软件未来的深度问答
后端·低代码·aigc
颜如玉5 小时前
HikariCP:Dead code elimination优化
后端·性能优化·源码
考虑考虑6 小时前
Jpa使用union all
java·spring boot·后端
bobz9657 小时前
virtio vs vfio
后端
Rexi7 小时前
“Controller→Service→DAO”三层架构
后端
bobz9658 小时前
计算虚拟化的设计
后端
深圳蔓延科技8 小时前
Kafka的高性能之路
后端·kafka
Barcke8 小时前
深入浅出 Spring WebFlux:从核心原理到深度实战
后端