golang時間字串和時間戳轉換的案例
阿新 • • 發佈:2020-12-21
1. 獲取當前時間字串和時間戳
package main import ( "fmt" "time" ) func main() { now := time.Now().UTC() // 顯示時間格式: UnixDate = "Mon Jan _2 15:04:05 MST 2006" fmt.Printf("%s\n",now.Format(time.UnixDate)) // 顯示時間戳 fmt.Printf("%ld\n",now.Unix()) // 顯示時分:Kitchen = "3:04PM" fmt.Printf("%s\n",now.Format("3:04PM")) }
更多時間格式
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" )
2. 時間字串解析成時間格式
package main import ( "fmt" "time" ) func main() { timeStr := "2018-01-01" fmt.Println("timeStr:",timeStr) t,_ := time.Parse("2006-01-02",timeStr) fmt.Println(t.Format(time.UnixDate)) }
3. 獲取當天零點時間戳
方法1
package main import ( "fmt" "time" ) func main() { timeStr := time.Now().Format("2006-01-02") t,timeStr) fmt.Println(t.Format(time.UnixDate)) //Unix返回早八點的時間戳,減去8個小時 timestamp := t.UTC().Unix() - 8*3600 fmt.Println("timestamp:",timestamp) }
方法2
package main import ( "fmt" "time" ) func main() { now := time.Now() t,_ := time.ParseInLocation("2006-01-02",now.Format("2006-01-02"),time.Local) timestamp := t.Unix() fmt.Println(timestamp) } /* time.Local本地時區 var Local *Location = &localLoc 以及UTC時區 var UTC *Location = &utcLoc 還可以替換成指定時區 //func LoadLocation(name string) (*Location,error) loc,_ := time.LoadLocation("Europe/Berlin") If the name is "" or "UTC",LoadLocation returns UTC. If the name is "Local",LoadLocation returns Local. */
補充:Golang中獲取當天0點的格式化時間
如下所示:
EndDateLimit := time.Now().Format("2006-01-02 00:00:00")
取當天某個整點的時間戳
now := time.Now().Unix() muteEndTime := time.Date(time.Now().Year(),time.Now().Month(),time.Now().Day(),8,time.Local).Unix() muteStartTime := time.Date(time.Now().Year(),22,time.Local).Unix()
本地當前時間戳(10位)
fmt.Println(time.Now().Unix()) //1468479251
本地當前時間戳(19位)
fmt.Println(time.Now().UnixNano()) //1468480006774460462
時間戳轉時間
fmt.Println(time.Unix(1389058332,0).Format("2006-01-02 15:04:05")) //2014-01-07 09:32:12
時間轉時間戳
fmt.Println(time.Date(2014,1,7,5,50,4,time.Local).Unix())
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。