最近在项目开发过程中,前端传递过来的时间(Date类型)在A模块是正确的,然后A模块调用B模块将时间(Date类型)作为参数传过去,然后B模块接收到的时间有误差,天数会多一天,小时少10小时,这应该是SpringCloud Feign组件造成的问题,我这里的解决办法是在A模块调用之前先将时间(Date类型)转为String类型,B模块接收到A模块的参数后将时间由String类型再转为Date类型就可以了,时间转换代码如下:
/**
* 日期格式化为字符串
*
* @param source
* @return java.lang.String
* @author zxzhang
* @date 2020/2/9
*/
public Date string2date(String source) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.parse(source);
}
/**
* 字符串解析为日期
*
* @param source
* @return java.lang.String
* @author zxzhang
* @date 2020/2/9
*/
public String date2String(Date source) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(source);
}
到此 Feign 传输Date类型参数存在误差的问题完美解决。