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即可。

相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码4 天前
别再前后端各写一套表单校验了
java·后端
大勇前进4 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
yuzhi_liu4 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile4 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
大白804 天前
PHP 内存溢出排查思路:看懂报错日志,精准定位问题
后端
二月龙4 天前
PHP 接口返回统一响应封装,让前后端对接更省心
后端
盖伦发发4 天前
软件工程SOLID 五大设计原则
后端·软件工程