ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

golang 保存时间到数据库会多出来八小时

2022-05-31 15:00:48  阅读:209  来源: 互联网

标签:会多 zone Cfg Mysql golang conf time CST 八小时


在golang 保存时间字符串转为时间格式后保存多出8小时

初步排查可能mysql数据库服务器时间问题

show variables like'%time_zone';

// outpot
Variable_name`, `Value`
'system_time_zone', 'CST'
'time_zone', 'SYSTEM'
进入服务查看
date
# outpout
Tue May 31 14:47:19 CST 2022

时间区间是对 东八区

由于我们数据层 和 业务层分离

  • 数据层接受前端参数 字符串
  • 字符串传入rpc 传入 数据层
  • 数据层写入数据库
直接在数据层测试写入数据 发现时间会改变 断定是 golang str to time 转换出了问题

网上说查看数据库链接时候设置时区

args := fmt.Sprintf("%s:%s@(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local",
		conf.Cfg.Mysql.User,
		conf.Cfg.Mysql.Password,
		conf.Cfg.Mysql.IP,
		conf.Cfg.Mysql.Port,
		conf.Cfg.Mysql.Name,
	)
// user:password@(localhost)/dbname?charset=utf8&parseTime=True&loc=Local
conn, err := gorm.Open("mysql", args)
### 设置后任然无效

处理方式

time.ParseInLocation("2006-01-02 15:04:05", endTime, time.FixedZone("CST", 8*3600))

标签:会多,zone,Cfg,Mysql,golang,conf,time,CST,八小时
来源: https://www.cnblogs.com/guanchaoguo/p/16330436.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有