golang中时区设置

关于我

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

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

time.Now().Format("2006-01-02 15:04:05")

time设置自定义时区

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方法中:

os.Setenv("ZONEINFO", '/home/tz/data.zip')

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

下载tzdata

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

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

全局设置

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

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

func initInMain() { var cstZone = time.FixedZone("CST", 8*3600) // 东八 time.Local = cstZone }

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

推荐阅读

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

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

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

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

最后

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

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

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


__EOF__

本文作者三十三重天
本文链接https://www.cnblogs.com/foxhappy/p/14577735.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   三十三重天  阅读(1042)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示