Go?語(yǔ)言入門學(xué)習(xí)之時(shí)間包
1.前言
時(shí)間和日期對(duì)于任何編程語(yǔ)言來說都是一個(gè)非常重要的包。 GO 語(yǔ)言 提供了 ??time?? 包來測(cè)量和顯示時(shí)間。既可以根據(jù)所選時(shí)區(qū)獲取當(dāng)前時(shí)間,又可以使用 ??time?? 包添加當(dāng)前時(shí)區(qū)的持續(xù)時(shí)間等。
2.日期和時(shí)間的表示
??time?? 包提供了時(shí)間類型,用來表示時(shí)間中的一個(gè)特定時(shí)刻,主要有以下幾個(gè)函數(shù):
Now()函數(shù):返回當(dāng)前時(shí)區(qū)的當(dāng)前時(shí)間Date(y, m, d, h, min, sec, nsec, loc): 該函數(shù)創(chuàng)建一個(gè)時(shí)間,代表一個(gè)指定的時(shí)間點(diǎn),該時(shí)間點(diǎn)由 用年、月、日、小時(shí)、分鐘、秒、納秒和位置參數(shù)表示。Unix(sec, nsec): 這個(gè)函數(shù)從 1970 年 1 月 1 日 UTC 以來的秒數(shù)和納秒數(shù)創(chuàng)建一個(gè)時(shí)間值,通常稱為 Unix 時(shí)間。

當(dāng)前時(shí)間
可以直接通過 ??time.Now()?? 函數(shù)獲取當(dāng)前時(shí)間:
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Println("Hello, 一起學(xué)習(xí) Dates And Times")
fmt.Printf("現(xiàn)在是北京時(shí)間:%s", now)
}運(yùn)行代碼:
$ go run main.go
Hello, 一起學(xué)習(xí) Dates And Times
現(xiàn)在是北京時(shí)間:2022-04-23 23:20:10.3383785 +0800 CST m=+0.004403601
日期函數(shù)
日期函數(shù)返回 ??yyyy-mm-dd hh:mm:ss + nsec?? 納秒所對(duì)應(yīng)的時(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)
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的時(shí)間戳
你可以使用 ??now()?? 方法獲得當(dāng)前時(shí)間,它的 ??Unix()??方法可以幫助我們將時(shí)間轉(zhuǎn)換為 UNIX 時(shí)間戳。
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 時(shí)間戳: %v\n", cur_time)
}運(yùn)行該代碼,記錄一下你此時(shí)運(yùn)行這段代碼的唯一的 Unix 時(shí)間戳:
Hello, 一起學(xué)習(xí) Dates And Times
當(dāng)前 Unix 時(shí)間戳: 1650728863
3.訪問時(shí)間組件的方法

- 如何將年、月和日添加到當(dāng)前時(shí)間
??AddDate?? 方法幫助添加年、月、日到對(duì)應(yīng)的日期,這可以是任何日期。你可以傳遞整數(shù)類型的年、月、日的值。返回類型是時(shí)間。你可以傳遞三個(gè)參數(shù)中的任何一個(gè)。
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
- 如何將小時(shí)、分鐘、秒添加到當(dāng)前時(shí)間中
??time?? 包提供了 ??add()?? 方法來獲取基于傳遞值的未來時(shí)間。這個(gè)方法需要整數(shù)的小時(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)前時(shí)間: %s\n", cur_time)
fmt.Printf("時(shí)間相加后的下一個(gè)時(shí)間段: %s\n", next_time)
}運(yùn)行結(jié)果:
Hello, 一起學(xué)習(xí) Dates And Times
當(dāng)前時(shí)間: 2022-04-23 23:42:26.6081221 +0800 CST m=+0.006779901
時(shí)間相加后的下一個(gè)時(shí)間段: 2022-04-24 01:43:48.6081221 +0800 CST m=+7282.006779901
此外還有星期,定義了兩種類型來幫助描述時(shí)間值的組成部分:

如何在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("解析時(shí)間: %s\n", parse_time)
}運(yùn)行該代碼:
Hello, 一起學(xué)習(xí) Dates And Times
自定義日期: 2022-02-22T22:22:22.221Z
解析時(shí)間: 2022-02-22 22:22:22.221 +0000 UTC
到此這篇關(guān)于Go 語(yǔ)言入門學(xué)習(xí)之時(shí)間包的文章就介紹到這了,更多相關(guān)Go 時(shí)間包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
go使用支付寶沙箱實(shí)現(xiàn)支付寶支付的操作步驟
支付寶沙箱支付是支付寶提供的一個(gè)測(cè)試環(huán)境,用于開發(fā)者在不影響真實(shí)交易的情況下進(jìn)行支付接口的開發(fā)和調(diào)試,本文給大家介紹了go使用支付寶沙箱實(shí)現(xiàn)支付寶支付的操作步驟,文中有詳細(xì)的代碼示例和圖文供大家參考,需要的朋友可以參考下2024-03-03
Go語(yǔ)言實(shí)現(xiàn)UDP版聊天小工具的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Go語(yǔ)言實(shí)現(xiàn)聊天小工具(UDP版),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Golang極簡(jiǎn)入門教程(四):編寫第一個(gè)項(xiàng)目
這篇文章主要介紹了Golang極簡(jiǎn)入門教程(四):編寫第一個(gè)項(xiàng)目,本文講解了workspace、包路徑、第一個(gè)可執(zhí)行命令等內(nèi)容,需要的朋友可以參考下2014-10-10
關(guān)于Golang標(biāo)準(zhǔn)庫(kù)flag的全面講解
這篇文章主要介紹了關(guān)于Golang標(biāo)準(zhǔn)庫(kù)flag的全面講解,這個(gè)庫(kù)的代碼量只有1000行左右,卻提供了非常完善的命令行參數(shù)解析功能,更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-09-09
Go基礎(chǔ)教程系列之回調(diào)函數(shù)和閉包詳解
這篇文章主要介紹了Go基礎(chǔ)教程系列之回調(diào)函數(shù)和閉包詳解,需要的朋友可以參考下2022-04-04

