中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

go語言如何設置時區

發布時間:2023-01-13 15:35:01 來源:億速云 閱讀:148 作者:iii 欄目:編程語言

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

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

時區的劃分

全球以英國倫敦格林威治作為零度經線的起點,每隔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)
}

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

設置時區有兩種方式:

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

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

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

2、加載時區

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語言如何設置時區”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平昌县| 滨海县| 伊川县| 勃利县| 和平区| 鱼台县| 余江县| 凤台县| 确山县| 德州市| 广德县| 庆元县| 铜陵市| 泗阳县| 资讯| 革吉县| 宽城| 黄浦区| 怀仁县| 南岸区| 通江县| 邛崃市| 海伦市| 辽阳县| 乐清市| 浠水县| 和平区| 罗江县| 山阳县| 宁城县| 新泰市| 宿州市| 乌拉特中旗| 濉溪县| 沧州市| 田林县| 西林县| 南阳市| 黄浦区| 小金县| 禹城市|