首页 / GO / Go MySql驱动程序未正确设置时间
Go MySql驱动程序未正确设置时间
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Go MySql驱动程序未正确设置时间,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1959字,纯文字阅读大概需要3分钟。
内容图文
![Go MySql驱动程序未正确设置时间](/upload/InfoBanner/zyjiaocheng/883/75635dda3faf4d2882922cd1bda68b7e.jpg)
我一直在开发一种微服务,可以在golang中与mysql交互一段时间,我喜欢这种有才华的语言.无论如何有一个问题,不知道问题出在哪里,在我的代码中,在mysql驱动程序中,在mysql中.所以我的机器时区UTC 3,我正在分享一些结果,可能有帮助
//created_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
mysql> select now();
"2016-11-07 22:43:02", //that is correct.
在去
fmt.PrintLn(time.Now().Local())
"2016-11-07 22:51:02" //that is correct too
但是当我将实体添加到数据库中时,mysql工作台向我显示了错误的日期时间.
"2016-11-07 19:51:02" //
转到代码:
func (this *AppLogHandler) addLog(_log *AppLog) (int64, error){
fmt.Println("addLog")
db:= this.Context.DB
stmt, err := db.Prepare("INSERT tbl_logs SET user_id=?,ip_proxy=?, ip_original=?, end_point=?, http_method=?, message=?, status=?, created_date=?")
if(err != nil){
log.Println(err)
return -1, err
}
defer stmt.Close()
res, err := stmt.Exec(&_log.UserID, &_log.IPProxy, &_log.IPOriginal, &_log.Endpoint, &_log.HttpMethod, &_log.Message, &_log.Status, &_log.CreatedDate)
if(err != nil){
log.Println(err)
return -1, err
}
return res.LastInsertId()
}
/// some code here
app_log := AppLog{}
app_log.IPProxy = r.RemoteAddr
app_log.IPOriginal = r.Header.Get("X-Forwarded-For")
app_log.CreatedDate = time.Now().Local()
app_log.UserID = user_id
app_log.Endpoint = r.URL.Path
app_log.HttpMethod = r.Method
fmt.Println(app_log.CreatedDate)
return this.addLog(&app_log)
所以,我需要您的帮助.我几个小时都无法解决问题.
mysql=> Ver 14.14 Distrib 5.7.15, for osx10.11 (x86_64) using EditLine wrapper
go => 1.7
mysql driver => 1.2, https://github.com/go-sql-driver/mysql/
解决方法:
mysql驱动程序有一个configuration parameter for the default time zone,您可以将其设置为time.Local(默认值为time.UTC).保存该值时,它首先是converts the time stamp to the UTC time zone,然后将其发送到数据库.
正如评论中已经提到的那样,一种更强大的方法是接受默认Loc,并在数据库中的UTC上进行标准化.这极大地简化了与日期数学相关的所有操作,并且如果您仅在显示值时将其从UTC转换为本地,就不会对查看数据的人的时区做出假设.
内容总结
以上是互联网集市为您收集整理的Go MySql驱动程序未正确设置时间全部内容,希望文章能够帮你解决Go MySql驱动程序未正确设置时间所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。