站長資訊網
        最全最豐富的資訊網站

        golang怎么設置時區

        golang設置時區的方法:1、固定時區到東八區,設置代碼如“var cstZone = time.FixedZone("CST", 8*3600)”;2、加載指定時區,設置代碼如“var cstSh, _ = time.LoadLocation("Asia/Shanghai")”。

        golang怎么設置時區

        本教程操作環境:Windows10系統、GO 1.18版、Dell G3電腦。

        golang怎么設置時區?

        Go時區設置

        時區的劃分

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

        時間格式

        當前時間time.Now()返回的是當地時區的時間:

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

        CST時間

        CST可以代表如下四個不同的時區:

        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時間有如下的轉化:

        GMT + 8 = UTC + 8 = CST
        登錄后復制

        Monotonic Clocks 和 Wall Clocks

        Wall Clocks表示掛鐘時間,存儲的是自1970 年 1 月 1 日 0 時 0 分 0 秒以來的時間戳,當系統和授時服務器進行校準時間時間操作時,有可能造成這一秒是2018-1-1 00:00:00,而下一秒變成了2017-12-31 23:59:59的情況。

        Monotonic Clocks,意思是單調時間的,所謂單調,就是只會不停的往前增長,不受校時操作的影響,這個時間是自進程啟動以來的秒數。

        time.Now()返回的m=+0.004002201就是表示Monotonic Clocks

        時區設置

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

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

        設置時區有兩種方式:

        • 固定時區(推薦使用)

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

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

        • 加載時區

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

        加載指定時區。但如果沒有go環境使用這種方式就會加載失敗,因為時區信息是放在go的安裝包中的。

        docker中配置時區

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

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

        推薦學習:《go視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 欧美日韩精品一区二区视频| 合区精品中文字幕| 亚洲日韩精品一区二区三区| 污污网站国产精品白丝袜| 久久精品亚洲精品国产欧美| 免费视频成人国产精品网站 | 欧美日韩精品久久久久| 欧美精品色婷婷五月综合 | 国产VA免费精品高清在线| 国产一级精品高清一级毛片| 欧美精品一区二区三区免费| 亚洲av日韩精品久久久久久a| 国产综合色在线精品| 国产高清在线精品一区二区| 久久精品亚洲乱码伦伦中文| 久久久精品2019免费观看| 99热成人精品国产免男男| 亚洲国产91精品无码专区| 国产成人精品福利网站在线| 国产精品九九久久免费视频| 一夲道无码人妻精品一区二区| 国产精品国色综合久久| 老司机精品影院91| 精品国产_亚洲人成在线高清| 国产精品无码免费播放| 国精品无码一区二区三区在线| 精品久久久无码中文字幕天天| 国产精品嫩草影院AV| 亚洲欧美日韩国产精品一区二区| 国产精品爱啪在线线免费观看| 亚洲欧美日韩精品专区| 91亚洲精品自在在线观看| 国产精品免费福利久久| 亚洲国产成人精品无码久久久久久综合 | 91精品欧美综合在线观看| 亚洲婷婷国产精品电影人久久| 国产精品v欧美精品v日韩| 国产精品白丝AV网站| 合区精品久久久中文字幕一区| 久久精品亚洲福利| 国产小呦泬泬99精品|