午夜三区_久久久久亚洲一区二区三区_夜夜操操操_久久久精彩视频_日韩在线观看视频一区二区_91视频观看

北京時間是cst還是utc,Golang

抖帥宮 1110 2023-07-23

北京時間是cst還是utc,Golang-第1張-觀點-玄機派

來源頭條作者:楊同學編程Unix 時間戳首先, unix 時間戳的單位是秒, 表示從美東時間(UTC) 的 1970 年 1 月 1號的 0點 到現在,經過的秒數。 因為 Unix 時間的定義中,已經明確了使用美東時間,所以我們在使用的時候,不用指定 unix 時間戳所在的地區。

UTC 和 CST 時間格式對于中國的程序員來說,在初始 utc 和 cst 時間上,可能需要做一些額外操作。

首先, cst 時間比 utc 時間快 8 小時,一般來說 CST = UTC + 8

Unix 轉 時間格式默認時區/ 本地時區在 golang 語言體系中,如果不指定時區,則默認使用系統指定的時區

? root@dnvim  ~/.config/nvim   master  date Sat Jan 1 05:36:28 UTC 2022通過date 命令,可以查看 linux 系統的時區是什么,可以看到我測試的機器上用的 UTC 時區

在寫一個簡單的單元測試,看下 time.Time 數據結構輸出格式

// 從 unix 時間 轉換成固定時間格式 func TestTime1(t *testing.T) { ts := time.Now().Unix() tm := time.Unix(ts, 0) log.Printf("tm=%+v", tm) }=== RUN TestTime1 2022/01/01 05:18:12 tm=2022-01-01 05:18:12 +0000 UTC --- PASS: TestTime1 (0.00s) PASS [Process exited 0]我在執行測試文件的時候,是北京時間(CST) 的 13:18 , 但是程序顯示為 05:18 (UTC)

如果我們直接將這個時間輸出出來,對于國內用戶來說,會比較難以理解(畢竟輸出的時間和北京時間無法對齊)

指定時區在 golang 中,可以指定的時區有這些,這些文件可以在$GOROOT/lib/time/zoneinfo.zip 中找到,解壓zoneinfo.zip可以得到一堆目錄和文件,我們只需要目錄和文件的名字,時區名格式是目錄名/文件名

從上述文件中,我們可以找到, 北京時間的格式為Asia/Shanghai 和Asia/Chongqing,代碼中指定CST如下

func TestTime2(t *testing.T) { ts := time.Now().Unix() loc, _ := time.LoadLocation("Asia/Shanghai") tm := time.Unix(ts, 0).In(loc) log.Printf("tm=%+v", tm) }=== RUN TestTime2 2022/01/01 05:54:29 tm=2022-01-01 13:54:29 +0800 CST --- PASS: TestTime2 (0.00s) PASS [Process exited 0]可以看到指定輸出為 CST 格式

指定格式當然,我們可能不滿足于只能輸出固定格式的時間字符串,比如想輸出2022年01月01日,05時54分 這樣的格式,可以怎么做呢。golang 提供了一個模板,可以讓我們自定義輸出格式。

數據

占位符

月份

1, 01, Jan, January

2, 02, _2

3,03,15,PM,pm,AM,am

4,04

5,05

06,2006

時區

-07,-0700,Z0700,Z07:00,-07:00,MST

周幾

Mon,Monday

func TestTime3(t *testing.T) { ts := time.Now().Unix() loc, _ := time.LoadLocation("Asia/Shanghai") tm := time.Unix(ts, 0).In(loc).Format("2006 年 01 月 02 日, 15時 04 分") log.Printf("tm=%+v", tm) }=== RUN TestTime3 2022/01/01 06:04:36 tm=2022 年 01 月 01 日, 14時 04 分 --- PASS: TestTime3 (0.00s) PASS [Process exited 0]可以看到, golang 已經按照輸出我們預期的格式了

這里需要注意的是,2016.01.0215:04:05 應該嚴格按照golang 指定的占位符來使用,不能自己用其他時間表示 年、月、日、時、分、秒、周幾

比如下面的代碼,會得到非預期的結果

func TestTime4(t *testing.T) { ts := time.Now().Unix() loc, _ := time.LoadLocation("Asia/Shanghai") tm := time.Unix(ts, 0).In(loc).Format("2006 年 01 月 02 日, 10時 04 分") log.Printf("tm=%+v", tm) }=== RUN TestTime4 2022/01/01 06:07:27 tm=2022 年 01 月 01 日, 10時 07 分 --- PASS: TestTime4 (0.00s) PASS [Process exited 0]
上一篇:辦公室綠植布置,不同辦公空間植物如何擺放
下一篇:北方清明節必吃的9種食物,記住吃“清明三寶”
相關文章

 發表評論

暫時沒有評論,來搶沙發吧~

返回頂部小火箭
主站蜘蛛池模板: 在线国产视频 | 一级爱爱片 | 精品在线看 | 无人区国产成人久久三区 | 91玖玖| 免费视频一区二区 | 日韩精品一区二区三区四区 | 精品福利在线视频 | 精品免费| 国产日产精品一区二区三区四区 | 综合久久综合久久 | 国产一伦一伦一伦 | 日韩欧美一区二区三区免费观看 | 天堂久久一区 | 免费成人高清 | 午夜国产一级片 | 精品国产1区2区3区 在线国产视频 | 在线国产视频 | 成人免费视频一区二区 | av网站免费看 | 亚洲黄色在线免费观看 | 伊人久久免费视频 | 亚洲日韩中文字幕一区 | 日本三级黄视频 | 国产一级片一区二区三区 | 日本黄色大片免费看 | 一呦二呦三呦国产精品 | 色免费看 | 亚洲国产精品第一区二区 | 日韩欧美精品在线 | 久久亚洲综合 | 视频在线一区二区 | 国产成人av在线播放 | 一久久久 | 毛片免费视频 | 亚洲精品视频免费 | 久久香蕉精品视频 | 成人在线视| 久久视频精品 | 久久久久国产一区二区三区 | 日韩在线观看中文字幕 |