我想把前端传的map转成需要的bean时,懒省劲,先把map转为json,再从json直接转成bean。本地环境没有问题,到了测试环境就抛异常:Failed to parse date[]: Invalid time zone indicator。
一开始以为是gson的版本问题,发现pom文件里的gson是2.8.7,但是打包出来是2.8.5。这个其实是因为springboot也有引用gson,版本覆盖了。
后来在一篇博客里找到了答案(链接在下面),原来是不同环境获取到的SimpleDateFormat不一致导致的,只需指定固定的SimpleDateFormat即可。
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
Gson本地和服务器环境不同遇到的Date转换问题 Failed to parse date []: Invalid time zone indicator - 枫树湾河桥 - 博客园GoogleGson在处理Date格式时有个小陷阱,在不同环境中部署时可能会遇到问题。 Gson默认处理Date对象的序列化/反序列化是通过一个SimpleDateFormat对象来实现的,通过下面的https://www.cnblogs.com/fswhq/p/Gson_date.html 但我这样来回转的方法不够优雅,可以用BeanUtils来实现map到bean的一步转换,具体就不展开了。



