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)文章
go使用支付寶沙箱實(shí)現(xiàn)支付寶支付的操作步驟
支付寶沙箱支付是支付寶提供的一個測試環(huán)境,用于開發(fā)者在不影響真實(shí)交易的情況下進(jìn)行支付接口的開發(fā)和調(diào)試,本文給大家介紹了go使用支付寶沙箱實(shí)現(xiàn)支付寶支付的操作步驟,文中有詳細(xì)的代碼示例和圖文供大家參考,需要的朋友可以參考下2024-03-03
Go語言實(shí)現(xiàn)UDP版聊天小工具的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Go語言實(shí)現(xiàn)聊天小工具(UDP版),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Golang極簡入門教程(四):編寫第一個項(xiàng)目
這篇文章主要介紹了Golang極簡入門教程(四):編寫第一個項(xiàng)目,本文講解了workspace、包路徑、第一個可執(zhí)行命令等內(nèi)容,需要的朋友可以參考下2014-10-10
關(guān)于Golang標(biāo)準(zhǔn)庫flag的全面講解
這篇文章主要介紹了關(guān)于Golang標(biāo)準(zhǔn)庫flag的全面講解,這個庫的代碼量只有1000行左右,卻提供了非常完善的命令行參數(shù)解析功能,更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-09-09
Go基礎(chǔ)教程系列之回調(diào)函數(shù)和閉包詳解
這篇文章主要介紹了Go基礎(chǔ)教程系列之回調(diào)函數(shù)和閉包詳解,需要的朋友可以參考下2022-04-04

