问题描述
hutool
包中的 DateUtil
十分强大,但是最近使用时,发现一个奇怪的问题。由于本人使用的是 Dubbo
框架,在进行RPC方法调用时传递Date类型参数,而Date类型参数值又是通过 hutool
包中的 DateUtil
处理得到的,这时会出现RPC接收方接收到的Date类型参数永远是当前时间。
原因分析:
使用 hutool
包中的 DateUtil
处理完日期后得到的是 cn.hutool.core.date.DateTime
,该类继承自 java.util.Date
,并重写了 toString
方法,而 Dubbo 的序列化默认调用 toString
,最终解析出来的日期就会有问题。
解决方案:
使用 hutool
包中的 DateUtil
处理完日期后,可以调用 toJDKDate
方法将结果转换成原生的 java.util.Date
类型。
参考:https://gitee.com/dromara/hutool/issues/I1818X