一、Go時間格式化概述
Go語言中的時間類型是time.Time,通過傳遞layout來進行格式化,layout是一個特定的字元串,用來表示時間的各個部分的組合方式,通過定義不同的組合方式來表示不同的時間格式。
二、時間格式化方法
1. 格式化為指定格式
package main import ( "fmt" "time" ) func main() { t := time.Date(2022, 5, 30, 14, 30, 0, 0, time.Local) fmt.Println(t.Format("2006-01-02 15:04:05")) }
以上代碼中,使用time.Date創建了一個表示2022年5月30日14點30分的time.Time對象t,然後通過調用t.Format方法將時間格式化為「2006-01-02 15:04:05」的字元串,最終輸出結果為「2022-05-30 14:30:00」。
2. 格式化為RFC3339標準格式
package main import ( "fmt" "time" ) func main() { t := time.Date(2022, 5, 30, 14, 30, 0, 0, time.Local) fmt.Println(t.Format(time.RFC3339)) }
以上代碼中,使用time.Date創建了一個表示2022年5月30日14點30分的time.Time對象t,然後通過調用t.Format方法將時間格式化為RFC3339標準格式的字元串,最終輸出結果為「2022-05-30T14:30:00+08:00」。
3. 格式化為字元串後綴
package main import ( "fmt" "time" ) func main() { t := time.Date(2022, 5, 30, 14, 30, 0, 0, time.Local) fmt.Println(t.Format("2006/01/02 PM 03:04:05 MST")) }
以上代碼中,使用time.Date創建了一個表示2022年5月30日14點30分的time.Time對象t,然後通過調用t.Format方法將時間格式化為「2006/01/02 PM 03:04:05 MST」的字元串,最終輸出結果為「2022/05/30 PM 02:30:00 CST」。
4. 使用現成的常量格式
package main import ( "fmt" "time" ) func main() { t := time.Date(2022, 5, 30, 14, 30, 0, 0, time.Local) fmt.Println(t.Format(time.ANSIC)) }
以上代碼中,使用time.Date創建了一個表示2022年5月30日14點30分的time.Time對象t,然後通過調用t.Format方法將時間格式化為ANSIC格式的字元串,最終輸出結果為「Mon May 30 14:30:00 2022」。
三、時間格式化layout詳解
layout是時間格式化的核心,其中每個字元都有特殊的含義,以下是一些常用字元:
- 2006:表示年份
- 01:表示月份
- 02:表示天數
- 15:表示小時(24小時制)
- 03:表示小時(12小時制)
- 04:表示分鐘
- 05:表示秒數
- PM:表示時間是上午還是下午
- MST:時區(例如CST,GMT等)
在layout中,可以使用「Mon Jan 2 15:04:05 MST 2006」這個特殊字元串來表示時間的默認格式。
四、時間格式化注意事項
1. t.Format方法返回的是字元串類型,因此需要使用fmt包的Println等函數輸出
2. 時間格式化中的字元是區分大小寫的
3. 最好不要將時間格式化的字元串定義在循環體內,因為定義一個新的字元串每次都會消耗內存
4. 在使用time.Parse方法將字元串格式化為時間時,layout必須與字元串的格式一致,否則將會報錯
五、總結
本文介紹了Go語言中時間格式化的相關內容,包括時間格式化的方法、layout的詳解以及注意事項等。通過學習本文,讀者可以更加簡單方便地處理時間問題。
原創文章,作者:RLUDD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/368897.html