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