天天看點

go時間解析

字元串轉為time類型

參考: https://pkg.go.dev/time?utm_source=gopls#Parse

func time.Parse(layout string, value string) (time.Time, error)            

其中layout的時間必須是"2006-01-02 15:04:05"這個時間

vmcoreTime="2021-04-07 07:45:22"
time, _ := time.Parse("2006-01-02 15:04:05", vmcoreTime)
fmt.Println(time)
fmt.Println(reflect.TypeOf(time))           

輸出:time.Time

2021-04-07 07:45:22 +0000 UTC

go語言調用Linux指令last擷取重新開機時間:

參考: https://developer.aliyun.com/article/132070

last reboot -F -w -x -i | grep reboot  |  awk -F'-' '{print $1}' | awk '{print $5" "$6" "$7" "$8" "$9}'           

輸出: Wed Apr 7 07:47:52 2021

使用go轉為ANSIC格式時間為标準時間

使用time.ParseInLocation解析時間

fmt.Println(rebootTime)
location, _ := time.LoadLocation("Asia/Shanghai")
time, _ := time.ParseInLocation(time.ANSIC, rebootTime, location) 
fmt.Println(time)            
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"
)           
上一篇: shell 變量