目录
问题现象:
今天在将项目部署到Linux系统上之后,发现无法正常插入数据到服务器中,查看docker的log日志后,发现报错:
提示是说gson下的一个date格式转换的错误.
问题分析:
然后当我使用postman在本地localhost地址下插入数据到服务器却是正常的.
想起来linux系统和我本地的windows系统在处理gson格式数据中的date类型时,可能存在区别.
于是上网搜了一下,果真如此,
在本地Controller中insert一个数据时,我是通过Gson gson=new Gson();的格式去创建gson对象的,再调用
gson.fromJson(a,A.class)去转化gson数据对象;日期数据格式的转换在我之前的文章中有提到过,就是可以在application.properties文件中添加以下配置:
spring.gson.date-format=yyyy-MM-dd HH:mm:ss
spring.gson.time-zone=GMT+8
然而资料显示,linux系统无法直接识别这个日期格式,因此需要用到GsonBulider来构建Gson对象.
解决方法:
将
Gson gson=new Gson();
修改为:
Gson gson= new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
即可解决.