欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

golang如何設(shè)置時區(qū)

本文小編為大家詳細介紹“golang如何設(shè)置時區(qū)”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“golang如何設(shè)置時區(qū)”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習新知識吧。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比桐廬網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式桐廬網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋桐廬地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。

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

時區(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
}

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

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)
}

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

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

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

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

  • 加載時區(qū)

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

加載指定時區(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"]

讀到這里,這篇“golang如何設(shè)置時區(qū)”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

名稱欄目:golang如何設(shè)置時區(qū)
網(wǎng)站URL:http://www.chinadenli.net/article18/ihhpdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站網(wǎng)站收錄定制網(wǎng)站手機網(wǎng)站建設(shè)虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司