你全力做到最好,可能还不如别人随便搞搞!

发掘积累过程的快感

首页 » BIBLE模型 » GoLang » GoLang time包设置时区

GoLang time包设置时区


GoLang time 包默认是 UTC ,可以通过下面两种方式设置时区

方法一

l,_ := time.LoadLocation("Asia/Shanghai")
fmt.Println(time.Now().In(l))
l,_ = time.LoadLocation("America/Adak")
fmt.Println(time.Now().In(l))

方法二

package main

import (
   "fmt"
   "time"
)

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

LoadLocation 有个问题,它依赖于 IANA Time Zone Database (简称 tzdata 吧) 这个数据库,一般 linux 系统都带了,但是 windows 系统就没带。

没有 tzdata 就会从 $GOROOT/中找。对于没有安装 go 环境的 windows 系统来说,就没办法通过 LoadLocation 设置时区。

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

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

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

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

下载 tzdata

互联网信息太多太杂,各互联网公司不断推送娱乐花边新闻,SNS,微博不断转移我们的注意力。但是,我们的时间和精力却是有限的。这里是互联网浩瀚的海洋中的一座宁静与美丽的小岛,供开发者歇息与静心潜心修炼。 “Bible”是圣经,有权威的书,我们的本意就是为开发者提供真正有用的的资料。 我的电子邮件 1217179982@qq.com,您在开发过程中遇到任何问题,欢迎与我联系。
Copyright © 2024. All rights reserved. 本站由 Helay 纯手工打造. 蜀ICP备15017444号