Golang是一門相對比較年輕的程式語言,但得益於其極高的運作效率和較強的並發處理能力,越來越受到廣大開發者的青睞。在實際開發中,我們經常需要將時間轉換成不同格式的字串,或將字串轉換成時間,在這篇文章中,我們將分享如何在Golang中高效地實現時間的轉換。
在Golang中,時間型別主要有兩種:time.Time和time.Duration。其中,time.Time表示時間點,可以用來表示一個特定的時間,如2021年7月1日12點,而time.Duration表示時間段,可以用來表示某一個時間點之間的時間跨度,如10秒,5分鐘等。
如果你需要將一個time.Time類型的時間轉換成字串,可以使用time.Time類型中的Format()方法。 Format()方法接收一個時間格式layout作為輸入參數,然後將時間格式化成對應的字串。
下面是一個範例程式碼:
package main import ( "fmt" "time" ) func main() { t := time.Now() fmt.Println(t.Format("2006-01-02 15:04:05")) }
運行結果:
2021-07-01 12:00:00
在格式化字串中,不同的字元代表不同的意義,如下表所示:
格式字元 | 意義 |
---|---|
#2006 | 。範例使用的年份) |
01 | 月 |
02 | |
時(24小時制) | |
時(12小時制) | |
分數 | |
毫秒 | |
上午或下午(12小時制) |
t := time.Now() fmt.Println(t.Format("2006年01月02日 15:04:05.000 PM MST"))
如果需要將字串轉換成time.Time類型的時間,可以使用time.Parse( )方法。 Parse()方法接收兩個參數,第一個參數是時間字串,第二個參數是時間格式layout。例如:
package main import ( "fmt" "time" ) func main() { str := "2021-07-01 12:00:00" layout := "2006-01-02 15:04:05" t, err := time.Parse(layout, str) if err != nil { fmt.Println(err) } fmt.Println(t) }
在上面的程式碼中,我們將字串轉換成了一個time.Time類型的變數t,並且在程式碼中判斷了轉換過程中的錯誤,以保證程式的健壯性。
計算時間的差值在Golang中,我們可以直接用減法的方式計算出時間的差值,例如:
package main import ( "fmt" "time" ) func main() { t1 := time.Date(2021, 7, 1, 12, 0, 0, 0, time.Local) t2 := time.Date(2021, 7, 1, 12, 1, 0, 0, time.Local) duration := t2.Sub(t1) fmt.Println(duration) }
package main import ( "fmt" "time" ) func main() { timestamp := int64(1625133600) t := time.Unix(timestamp, 0) fmt.Println(t) }
2021-07-01 13:00:00 +0800 CST
以上是如何在Golang中有效率地實現時間的轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!