Go?語言入門學(xué)習(xí)之時間包
1.前言
時間和日期對于任何編程語言來說都是一個非常重要的包。 GO 語言 提供了 ??time?
? 包來測量和顯示時間。既可以根據(jù)所選時區(qū)獲取當(dāng)前時間,又可以使用 ??time?
? 包添加當(dāng)前時區(qū)的持續(xù)時間等。
2.日期和時間的表示
??time?
? 包提供了時間類型,用來表示時間中的一個特定時刻,主要有以下幾個函數(shù):
Now()
函數(shù):返回當(dāng)前時區(qū)的當(dāng)前時間Date(y, m, d, h, min, sec, nsec, loc)
: 該函數(shù)創(chuàng)建一個時間,代表一個指定的時間點(diǎn),該時間點(diǎn)由 用年、月、日、小時、分鐘、秒、納秒和位置參數(shù)表示。Unix(sec, nsec)
: 這個函數(shù)從 1970 年 1 月 1 日 UTC 以來的秒數(shù)和納秒數(shù)創(chuàng)建一個時間值,通常稱為 Unix 時間。
當(dāng)前時間
可以直接通過 ??time.Now()?
? 函數(shù)獲取當(dāng)前時間:
package main import ( "fmt" "time" ) func main() { now := time.Now() fmt.Println("Hello, 一起學(xué)習(xí) Dates And Times") fmt.Printf("現(xiàn)在是北京時間:%s", now) }
運(yùn)行代碼:
$ go run main.go
Hello, 一起學(xué)習(xí) Dates And Times
現(xiàn)在是北京時間:2022-04-23 23:20:10.3383785 +0800 CST m=+0.004403601
日期函數(shù)
日期函數(shù)返回 ??yyyy-mm-dd hh:mm:ss + nsec?
? 納秒所對應(yīng)的時間。
package main import ( "fmt" "time" ) func main() { fmt.Println("Hello, 一起學(xué)習(xí) Dates And Times") date := time.Date(2022, 02, 22, 22, 22, 22, 222222222, time.UTC) fmt.Printf("Date is %s\n", date) }
運(yùn)行代碼:
$ go run main.go
Hello, 一起學(xué)習(xí) Dates And Times
Date is 2022-02-22 22:22:22.222222222 +0000 UTC
如何在Golang中獲取當(dāng)前UNIX的時間戳
你可以使用 ??now()?
? 方法獲得當(dāng)前時間,它的 ??Unix()?
?方法可以幫助我們將時間轉(zhuǎn)換為 UNIX 時間戳。
package main import ( "fmt" "time" ) func main() { fmt.Println("Hello, 一起學(xué)習(xí) Dates And Times") cur_time := time.Now().Unix() fmt.Printf("當(dāng)前 Unix 時間戳: %v\n", cur_time) }
運(yùn)行該代碼,記錄一下你此時運(yùn)行這段代碼的唯一的 Unix 時間戳:
Hello, 一起學(xué)習(xí) Dates And Times
當(dāng)前 Unix 時間戳: 1650728863
3.訪問時間組件的方法
- 如何將年、月和日添加到當(dāng)前時間
??AddDate?
? 方法幫助添加年、月、日到對應(yīng)的日期,這可以是任何日期。你可以傳遞整數(shù)類型的年、月、日的值。返回類型是時間。你可以傳遞三個參數(shù)中的任何一個。
package main import ( "fmt" "time" ) func main() { fmt.Println("Hello, 一起學(xué)習(xí) Dates And Times") date := time.Date(2022, 02, 22, 22, 22, 22, 222222222, time.UTC) next_date := date.AddDate(1, 2, 1) fmt.Printf("Date is %s\n", date) fmt.Printf("Next date is %s\n", next_date) }
運(yùn)行結(jié)果:
Hello, 一起學(xué)習(xí) Dates And Times
Date is 2022-02-22 22:22:22.222222222 +0000 UTC
Next date is 2023-04-23 22:22:22.222222222 +0000 UTC
- 如何將小時、分鐘、秒添加到當(dāng)前時間中
??time?
? 包提供了 ??add()?
? 方法來獲取基于傳遞值的未來時間。這個方法需要整數(shù)的小時、分鐘、秒。
package main import ( "fmt" "time" ) func main() { fmt.Println("Hello, 一起學(xué)習(xí) Dates And Times") cur_time := time.Now() next_time := cur_time.Add(time.Hour*2 + time.Minute*1 + time.Second*22) fmt.Printf("當(dāng)前時間: %s\n", cur_time) fmt.Printf("時間相加后的下一個時間段: %s\n", next_time) }
運(yùn)行結(jié)果:
Hello, 一起學(xué)習(xí) Dates And Times
當(dāng)前時間: 2022-04-23 23:42:26.6081221 +0800 CST m=+0.006779901
時間相加后的下一個時間段: 2022-04-24 01:43:48.6081221 +0800 CST m=+7282.006779901
此外還有星期,定義了兩種類型來幫助描述時間值的組成部分:
如何在Golang中解析日期字符串?
package main import ( "fmt" "time" ) func main() { fmt.Println("Hello, 一起學(xué)習(xí) Dates And Times") date := "2022-02-22T22:22:22.221Z" parse_time, _ := time.Parse(time.RFC3339, date) fmt.Printf("自定義日期: %s\n", date) fmt.Printf("解析時間: %s\n", parse_time) }
運(yùn)行該代碼:
Hello, 一起學(xué)習(xí) Dates And Times
自定義日期: 2022-02-22T22:22:22.221Z
解析時間: 2022-02-22 22:22:22.221 +0000 UTC
到此這篇關(guān)于Go 語言入門學(xué)習(xí)之時間包的文章就介紹到這了,更多相關(guān)Go 時間包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Golang加權(quán)輪詢負(fù)載均衡的實(shí)現(xiàn)
負(fù)載均衡器在向后端服務(wù)分發(fā)流量負(fù)載時可以使用幾種策略。本文主要介紹了Golang加權(quán)輪詢負(fù)載均衡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06Go實(shí)現(xiàn)短url項(xiàng)目的方法示例
這篇文章主要介紹了Go實(shí)現(xiàn)短url項(xiàng)目的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03Go?http請求排隊(duì)處理實(shí)戰(zhàn)示例
這篇文章主要為大家介紹了Go?http請求排隊(duì)處理實(shí)戰(zhàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07如何使用Go語言獲取當(dāng)天、昨天、明天、某天0點(diǎn)時間戳以及格式化時間
這篇文章主要給大家介紹了關(guān)于如何使用Go語言獲取當(dāng)天、昨天、明天、某天0點(diǎn)時間戳以及格式化時間的相關(guān)資料,格式化時間戳是將時間戳轉(zhuǎn)換為特定的日期和時間格式,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10