前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >golang中时区设置的多种方式

golang中时区设置的多种方式

原创
作者头像
happlyfox
修改2021-03-24 17:59:10
7.1K0
修改2021-03-24 17:59:10
举报
文章被收录于专栏:技术开源分享技术开源分享

关于我

文章首发 | 我的博客 | 欢迎关注

go语言的time.Now()返回的是当地时区时间

代码语言:javascript
复制
time.Now().Format("2006-01-02 15:04:05")

time设置自定义时区

代码语言:javascript
复制
var cstSh, _ = time.LoadLocation("Asia/Shanghai") //上海
fmt.Println("SH : ", time.Now().In(cstSh).Format("2006-01-02 15:04:05"))

LoadLocation 有个问题,它依赖于 IANA Time Zone Database (简称 tzdata 吧) 这个数据库,一般linux系统都带了,但是windows系统就没带。所以如果windows系统没有安装go环境,调用LoadLocation就会报错。

当前解决方法也有:

1、我们可以自己把tzdata文件放到自己的程序目录中,然后让 time 包能够从我们自己的程序目录中加载时区文件就可以了。

文件目录可以通过环境变量设置,在main方法中:

代码语言:javascript
复制
os.Setenv("ZONEINFO", '/home/tz/data.zip')

然后再调用 LoadLocation 方法就可以了。

下载tzdata

2、使用时区方式 推荐方式

代码语言:javascript
复制
var cstZone = time.FixedZone("CST", 8*3600)       // 东八区
fmt.Println("SH : ", time.Now().In(cstZone).Format("2006-01-02 15:04:05"))

全局设置

如果说要设置全局的time时区配置应该如何做?

main.go(主函数处)增加一个初始化方法

代码语言:javascript
复制
func initInMain() {
    var cstZone = time.FixedZone("CST", 8*3600) // 东八
    time.Local = cstZone
}

将定义的时区实例赋值给time.Local

推荐阅读

Redis工具收费后新的开源已出现

GitHub上Star最高的工程师技能图谱

中国程序员最容易发错的单词

推荐!!! Markdown图标索引网站

最后

本文到此结束,希望对你有帮助 😃

如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

更多精彩技术文章汇总在我的 公众号【程序员工具集]】,持续更新,欢迎关注订阅收藏

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 全局设置
  • 最后
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档