一、基礎概念
在golang中,時間在代碼中使用time.Time類型表示,它包含了年、月、日、時、分、秒、納秒、時區等信息。對於這些信息的格式化,golang提供了fmt包和time包兩個包的支持。
二、fmt包時間格式化
在fmt包中,時間格式化使用的是go語言自帶的格式化字元串,例如:
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
其中,”2006-01-02 15:04:05″代表了go語言的誕生時間:2006年1月2日15點04分05秒,除此之外,還可以使用其他的格式化字元串,例如:
fmt.Println(time.Now().Format("2006/01/02"))
使用「/」分割時間,並且年、月、日的順序不同於前面的例子。
在實際使用中,fmt包的時間格式化常用於控制台輸出等簡單場景。
三、time包時間格式化
在time包中,時間格式化使用的是time.Time類型的Format函數,例如:
t := time.Now() fmt.Println(t.Format("2006-01-02 15:04:05"))
與fmt包相比,time包的時間格式化更加靈活,支持更多的結構體和函數。下面是一些常用的時間格式化方法:
四、time包時間常用格式化方法
1. 時間戳轉為time.Time類型
Unix函數可以將時間戳轉為time.Time類型:
t := time.Unix(123456789, 0) fmt.Println(t)
2. time.Time類型取年、月、日等具體時間
time.Time類型包含了具體的時間信息,可以通過Year、Month、Day等函數獲取對應的時間信息:
t := time.Now() fmt.Println(t.Year()) fmt.Println(t.Month()) fmt.Println(t.Day())
3. 時間加減運算
time.Time類型的Add和Sub函數可以進行時間的加減運算:
t := time.Now() fmt.Println(t) fmt.Println(t.Add(24 * time.Hour)) // 加一天 fmt.Println(t.Sub(time.Hour)) // 減一小時 fmt.Println(t.AddDate(1, 0, 0)) // 加一年
4. 時間比較
time.Time類型的Before和After函數可以進行時間的比較:
t1 := time.Now() t2 := time.Now().Add(24 * time.Hour) if t1.Before(t2) { fmt.Println("t1 before t2") } if t2.After(t1) { fmt.Println("t2 after t1") }
5. 時間格式化
time.Time類型的Format函數可以將時間格式化為字元串:
t := time.Now() fmt.Println(t.Format("2006-01-02 15:04:05")) fmt.Println(t.Format("2006/01/02"))
五、總結
golang的時間格式化支持非常靈活,可以通過fmt包和time包來實現不同的時間格式化需求。開發者在實踐中可以根據具體需求靈活選擇,一定要注意格式化字元串的正確性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/227867.html