golang 時間格式化總結

根據字符串創建一個基於當地時區的時間類型

通過Date.now方法獲取的是基於當地時區的時間

 

now := Date.now() 

結果是2019-06-27 10:28:31.282649389 +0800 CST m=+0.000347190,注意是帶了當地時區+08的

通過time.Parse將字符串轉化爲時間類型,是UTC時間

 

before, _:= time.Parse("2006-01-02 15:04:05", "2019-06-26 22:06:00")

結果是 2019-06-26 22:06:00 +0000 UTC

其實我想做的是,將2019-06-26 22:06:00轉化爲東八區的時間,應該用time.ParseInLocation方法

 

local, _:=time.ParseInLocation("2006-01-02 15:04:05", "2019-06-26 20:00:00", time.Local)
// 2019-06-26 22:06:00 +0800 CST

將當地時區轉化爲UTC時間

 

// local根據上一步創建的是 2019-06-26 22:06:00 +0800 CST
utcLocal :=local.UTC()

結果是2019-06-26 14:06:00 +0000 UTC,轉化爲UTC時間自動-8小時。

將UTC時間轉化爲當地時間

 

local2 :=utcLocal.Local()

結果是2019-06-26 22:06:00 +0800 CST

golang還提供了更多的格式化參考格式提供選擇
const (
   ANSIC       = "Mon Jan _2 15:04:05 2006"
   UnixDate    = "Mon Jan _2 15:04:05 MST 2006"
   RubyDate    = "Mon Jan 02 15:04:05 -0700 2006"
   RFC822      = "02 Jan 06 15:04 MST"
   RFC822Z     = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
   RFC850      = "Monday, 02-Jan-06 15:04:05 MST"
   RFC1123     = "Mon, 02 Jan 2006 15:04:05 MST"
   RFC1123Z    = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
   RFC3339     = "2006-01-02T15:04:05Z07:00"
   RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
   Kitchen     = "3:04PM"
   // Handy time stamps.
   Stamp      = "Jan _2 15:04:05"
   StampMilli = "Jan _2 15:04:05.000"
   StampMicro = "Jan _2 15:04:05.000000"
   StampNano  = "Jan _2 15:04:05.000000000"
)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章