站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

go語言怎么設(shè)置時區(qū)

兩種設(shè)置方式:1、固定時區(qū),語法“var c = time.FixedZone("CST", 8*3600)”和“time.Now().In(c).Format("時間")”;2、加載時區(qū),語法“var c, _ = time.LoadLocation("Asia/Shanghai")”和“time.Now().In(c).Format("時間")”。

go語言怎么設(shè)置時區(qū)

本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。

時區(qū)的劃分

全球以英國倫敦格林威治作為零度經(jīng)線的起點,每隔15經(jīng)度為一個時區(qū),15度經(jīng)線為該時區(qū)的中央經(jīng)線,共分為24個時區(qū)。由西向東每隔15經(jīng)度增加一個時區(qū),相反的,每向西15經(jīng)度減少一個時區(qū)。中國所在時區(qū)為東8區(qū)。

時間格式

當前時間time.Now()返回的是當?shù)貢r區(qū)的時間:

func main() {     t := time.Now()       fmt.Println(t) //2020-12-16 09:34:19.5828312 +0800 CST m=+0.004002201 }
登錄后復(fù)制

CST時間

CST可以代表如下四個不同的時區(qū):

  • Central Standard Time (USA) UT-6:00:美國標準時間
  • Central Standard Time (Australia) UT+9:30:澳大利亞標準時間
  • China Standard Time UT+8:00:中國標準時間
  • Cuba Standard Time UT-4:00:古巴標準時間

time.Now()返回的 +0800 CST 表示的就是中國標準時間,與UTC時間有如下的轉(zhuǎn)化:

GMT + 8 = UTC + 8 = CST
登錄后復(fù)制

Monotonic Clocks 和 Wall Clocks

Wall Clocks表示掛鐘時間,存儲的是自1970 年 1 月 1 日 0 時 0 分 0 秒以來的時間戳,當系統(tǒng)和授時服務(wù)器進行校準時間時間操作時,有可能造成這一秒是2018-1-1 00:00:00,而下一秒變成了2017-12-31 23:59:59的情況。
Monotonic Clocks,意思是單調(diào)時間的,所謂單調(diào),就是只會不停的往前增長,不受校時操作的影響,這個時間是自進程啟動以來的秒數(shù)。
time.Now()返回的m=+0.004002201就是表示Monotonic Clocks

時區(qū)設(shè)置

go語言中如果不設(shè)置指定的時區(qū),通過time.Now()獲取到的就是本地時區(qū):

func main() {     t := time.Now()   //返回本地時區(qū)格式     fmt.Println(t) }
登錄后復(fù)制

go語言并沒有全局設(shè)置時區(qū)這么一個東西,每次輸出時間都需要調(diào)用一個In()函數(shù)改變時區(qū)。

設(shè)置時區(qū)有兩種方式:

1、固定時區(qū)(推薦使用)

var cstZone = time.FixedZone("CST", 8*3600)         // 東八 fmt.Println(time.Now().In(cstZone).Format("2006-01-02 15:04:05"))
登錄后復(fù)制

固定時區(qū)到東八區(qū)。但這種不是對程序的全局設(shè)置,每次獲取時都需要固定時區(qū)

2、加載時區(qū)

var cstSh, _ = time.LoadLocation("Asia/Shanghai") //  上海 fmt.Println(time.Now().In(cstSh).Format("2006-01-02 15:04:05"))
登錄后復(fù)制

加載指定時區(qū)。但如果沒有g(shù)o環(huán)境使用這種方式就會加載失敗,因為時區(qū)信息是放在go的安裝包中的。

注:docker中配置時區(qū)

如果你用第二種方式加載時區(qū),在打docker鏡像時就需要進行時區(qū)相關(guān)的配置,配置文件如下:

FROM golang:alpine as build RUN apk --no-cache add tzdata  //構(gòu)建階段加載時區(qū) WORKDIR /app ADD . /app RUN CGO_ENABLED=0 GOOS=linux go build -o myapp  FROM scratch as final  COPY --from=build /app/myapp . ### 下面這行是新加的,復(fù)制時區(qū)相關(guān)的信息到最終鏡像中,否則程序會找不到改時區(qū) COPY --from=build /usr/share/zoneinfo /usr/share/zoneinfo ENV TZ=Asia/Shanghai  //在最終階段設(shè)置時區(qū)環(huán)境變量  CMD ["/myapp"]
登錄后復(fù)制

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
国产女主播精品大秀系列| 日韩精品无码一区二区三区AV| 国精品无码一区二区三区左线| 日韩一区二区视频| 国产精品沙发午睡系列| 久久久精品国产免大香伊| 人人妻人人澡人人爽精品日本 | 精品国产一区二区二三区在线观看| 久久精品国产免费观看三人同眠| 在线精品视频播放| 亚洲爆乳精品无码一区二区 | 午夜影视日本亚洲欧洲精品一区| 日韩电影免费在线观看中文字幕| WWW夜片内射视频日韩精品成人 | 久久久久无码精品国产h动漫| 国产亚洲精品无码成人| 国产成人精品免费大全| 精品99在线观看| 日韩视频一区二区三区| 四虎永久在线精品免费观看地址| 国产精品无码aⅴ嫩草| 久久精品午夜一区二区福利 | 麻豆AV无码精品一区二区| 91无码人妻精品一区二区三区L| 999这里只有精品| d动漫精品专区久久| 亚洲日韩精品无码专区加勒比☆| 亚洲精品456在线播放| 99aiav国产精品视频| 精品无码一区在线观看| 99国产精品免费视频观看| 久久棈精品久久久久久噜噜| 日韩精品极品视频在线观看免费| 日韩精品少妇无码受不了| 日韩精品区一区二区三VR| 999任你躁在线精品免费不卡| 久久久久亚洲精品无码蜜桃| 麻豆成人久久精品二区三区免费 | 五月天精品视频在线观看| 日韩精品无码区免费专区| 国产精品久久国产精麻豆99网站|