关于这个问题,网上已经有很多解决方案了,不过都是改mysql的配置信息,但是有些情况,无法去修改数据库的配置,那么就得用程序来解决了。
近期写项目时也突然遇到了这个问题,不过是“突然”的,项目开始时,时间取值时都没有问题,只是后来出现的,然后对前后的代码进行了比较,发现之前的取值都是使用实体类来接收的,对应的变量是String类型的,而后来的取值是使用Map<String,Object>(因为偷懒了。。。),使用Object类型取出的时间,和数据库中的时间就会差距14个小时,原因就是安装mysql之后没有进行时区的设置,但是数据库的管理不在我这边,要是改库就会很麻烦,所以还是把之后结果类型换成了String类型。
mybatis在从数据库取值之后,如果设置的结果类型是String,那么它就不会对时间类型进行时区的转换,直接当成字符串返回来,只有使用Date、Object类型接收的时候,会进行相关时区的转换
不改变mysql配置解决mybatis从mysql数据库中取时间差14个小时的问题
最新推荐文章于 2023-07-12 09:23:48 发布
本文探讨在使用MyBatis框架从MySQL数据库获取时间数据时遇到的时区偏差问题,尤其是在使用Object类型接收时间数据时。通过对比不同数据类型(如String与Object)在时间取值上的差异,分析了问题产生的原因,并给出了将结果类型调整为String以避免时区转换错误的解决方案。
1479

被折叠的 条评论
为什么被折叠?



