最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang time包中的函數(shù)用法詳解

 更新時(shí)間:2023年08月10日 09:42:06   作者:路多辛  
在日常開發(fā)過程中,會(huì)頻繁遇到對(duì)時(shí)間進(jìn)行操作的場景,使用 Golang 中的 time 包可以很方便地實(shí)現(xiàn)對(duì)時(shí)間的相關(guān)操作,接下來的幾篇文章會(huì)詳細(xì)講解 time 包,本文講解一下 time 包中的函數(shù),需要的朋友可以參考下

func Now() Time

返回當(dāng)前的系統(tǒng)時(shí)間。

package main
import (
	"fmt"
	"time"
)
func main() {
  now := time.Now()  
  fmt.Println(now.Unix())
}

func Parse(layout, value string) (Time, error)

將字符串解析為時(shí)間類型,并返回對(duì)應(yīng)的 Time 對(duì)象。layout 參數(shù)是表示時(shí)間的格式,例如"2006-01-02 15:04:05"表示年、月、日、時(shí)、分、秒的格式。

package main
import (
	"fmt"
	"time"
)
func main() {
  layout := "2006-01-02 15:04:05"  
  str := "2023-07-19 12:34:56"  
  t, _ := time.Parse(layout, str)  
  fmt.Println(t)
}

func ParseDuration(s string) (Duration, error)

用于將字符串解析為 Duration 類型。

package main
import (
	"fmt"
	"time"
)
func main() {
	durationStr := "2h45m"
	duration, err := time.ParseDuration(durationStr)
	if err != nil {
		fmt.Println("解析持續(xù)時(shí)間錯(cuò)誤:", err)
		return
	}
	fmt.Printf("解析后的持續(xù)時(shí)間為:%v\n", duration)
}

func ParseInLocation(layout, value string, loc *Location) (Time, error)

用于將字符串解析為 Time 類型,并在指定的時(shí)區(qū)中解析時(shí)間。

package main
import (
	"fmt"
	"time"
)
func main() {
	location := time.FixedZone("CustomZone", 2*60*60) // 創(chuàng)建一個(gè)偏移量為2小時(shí)的固定時(shí)區(qū)
	timeString := "2023-07-18 14:30:00"               // 要解析的字符串
	t, err := time.ParseInLocation("2006-01-02 15:04:05", timeString, location)
	if err != nil {
		fmt.Println("解析時(shí)間錯(cuò)誤:", err)
		return
	}
	fmt.Printf("解析后的時(shí)間為:%v\n", t)
}

func Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) Time

根據(jù)給定的年、月、日、時(shí)、分、秒和納秒創(chuàng)建一個(gè) Time 對(duì)象,loc 參數(shù)表示時(shí)區(qū)。

package main
import (
	"fmt"
	"time"
)
func main() {
  t := time.Date(2023, 7, 19, 12, 34, 56, 0, time.UTC)  
  fmt.Println(t)
}

func Since(t Time) Duration

返回從當(dāng)前時(shí)間到 t 之間的時(shí)間差,以納秒為單位。

package main
import (
	"fmt"
	"time"
)
func main() {
  t := time.Date(2023, 7, 19, 12, 34, 56, 0, time.UTC)  
  duration := time.Since(t)  
  fmt.Println(duration)
}

func Until(t Time) Duration

返回從 t 到當(dāng)前時(shí)間之間的時(shí)間差,以納秒為單位。

package main
import (
	"fmt"
	"time"
)
func main() {
  t := time.Date(2023, 7, 19, 12, 34, 56, 0, time.UTC)  
  duration := time.Until(t)  
  fmt.Println(duration)
}

func After(d Duration) <-chan Time

用于創(chuàng)建一個(gè)通道,將在指定的時(shí)間間隔后向通道發(fā)送一個(gè) time.Time 類型的值。

package main
import (
	"fmt"
	"time"
)
func main() {
	// 創(chuàng)建一個(gè)將在5秒后發(fā)送值的通道
	timer := time.After(5 * time.Second)
	// 等待通道發(fā)送值
	fmt.Println(<-timer)
}

func AfterFunc(d Duration, f func()) *Timer

用于創(chuàng)建一個(gè)定時(shí)器,并在指定的時(shí)間間隔后執(zhí)行一個(gè)函數(shù)。

package main
import (
	"fmt"
	"time"
)
func main() {
	// 創(chuàng)建一個(gè)將在5秒后觸發(fā)的定時(shí)器
	timer := time.AfterFunc(5*time.Second, func() {
		fmt.Println("路多辛的博客!")
	})
	// 停止定時(shí)器
	time.Sleep(10 * time.Second)
	timer.Stop()
	// 輸出:路多辛的博客!
	fmt.Println("Program ended")
}

func Unix(sec int64, nsec int64) Time

用于將 Unix 時(shí)間戳轉(zhuǎn)換為時(shí)間類型。

package main
import (
	"fmt"
	"time"
)
func main() {
	// 定義一個(gè)Unix時(shí)間戳
	unixTime := int64(1691587957)
	// 使用time.Unix函數(shù)將Unix時(shí)間戳轉(zhuǎn)換為時(shí)間類型
	t := time.Unix(unixTime, 0)
	// 打印結(jié)果
	fmt.Println(t)
}

func UnixMilli(msec int64) Time

用于將毫秒時(shí)間戳轉(zhuǎn)換為時(shí)間類型。

package main
import (
	"fmt"
	"time"
)
func main() {
	t := time.UnixMilli(1691587957000)
	// 打印結(jié)果
	fmt.Println(t)
}

func UnixMicro(usec int64) Time

用于將微秒時(shí)間戳轉(zhuǎn)換為時(shí)間類型。

package main
import (
	"fmt"
	"time"
)
func main() {
	t := time.UnixMilli(1691587957000000)
	// 打印結(jié)果
	fmt.Println(t)
}

func Tick(d Duration) <-chan Time

用于創(chuàng)建一個(gè)定時(shí)器,該定時(shí)器每隔一定的時(shí)間間隔就會(huì)向通道發(fā)送當(dāng)前的時(shí)間。

package main
import (
	"fmt"
	"time"
)
func main() {
	// 創(chuàng)建一個(gè)每隔1秒進(jìn)行一次打印的定時(shí)器
	ticker := time.Tick(1 * time.Second)
	for {
		<-ticker // 等待定時(shí)器的發(fā)送
		fmt.Println("這是ticker的打印")
	}
}

func LoadLocation(name string) (*Location, error)

用于加載并返回一個(gè)特定的時(shí)區(qū)。

package main
import (
	"fmt"
	"time"
)
func main() {
	// 加載"Asia/Shanghai"時(shí)區(qū)
	location, err := time.LoadLocation("Asia/Shanghai")
	if err != nil {
		fmt.Println("無法加載時(shí)區(qū):", err)
		return
	}
	// 使用該時(shí)區(qū)創(chuàng)建一個(gè)時(shí)間對(duì)象
	t := time.Now().In(location)
	fmt.Println("當(dāng)前時(shí)間:", t)
}

func LoadLocationFromTZData(name string, data []byte) (*Location, error)

用于從 TZ 數(shù)據(jù)中加載并返回一個(gè)時(shí)區(qū)。

package main
import (
	"fmt"
	"time"
)
func main() {
	// 加載"Asia/Shanghai"時(shí)區(qū)
	location, err := time.LoadLocationFromTZData("Asia/Shanghai")
	if err != nil {
		fmt.Println("無法加載時(shí)區(qū):", err)
		return
	}
	// 使用該時(shí)區(qū)創(chuàng)建一個(gè)時(shí)間對(duì)象
	t := time.Now().In(location)
	fmt.Println("當(dāng)前時(shí)間:", t)
}

func FixedZone(name string, offset int) *Location

用于創(chuàng)建一個(gè)具有固定偏移量的時(shí)區(qū)。

package main
import (
	"fmt"
	"time"
)
func main() {
	// 創(chuàng)建一個(gè)偏移量為2小時(shí)的固定時(shí)區(qū)
	location := time.FixedZone("CustomZone", 2*60*60)
	// 使用該時(shí)區(qū)創(chuàng)建一個(gè)時(shí)間對(duì)象
	t := time.Now().In(location)
	fmt.Println("當(dāng)前時(shí)間:", t)
}

func NewTicker(d Duration) *Ticker

用于創(chuàng)建一個(gè)新的 Ticker 對(duì)象,該對(duì)象可以在指定的時(shí)間間隔重復(fù)發(fā)送 Time 值。

package main
import (
	"fmt"
	"time"
)
func main() {
	// 創(chuàng)建一個(gè)每秒發(fā)送一次的 Ticker 對(duì)象
	ticker := time.NewTicker(1 * time.Second)
	defer ticker.Stop()
	for {
		select {
		case <-ticker.C:
			fmt.Println("打印一次路多辛的博客")
		}
	}
}

func NewTimer(d Duration) *Timer

用于創(chuàng)建一個(gè)新的 Timer 對(duì)象,該對(duì)象可以在指定的時(shí)間間隔后發(fā)送一個(gè) Time 類型的值。

package main
import (
	"fmt"
	"time"
)
func main() {
	// 創(chuàng)建一個(gè)定時(shí)器,在2秒后發(fā)送一個(gè)時(shí)間值
	timer := time.NewTimer(2 * time.Second)
	defer timer.Stop()
	// 使用定時(shí)器發(fā)送的時(shí)間值處理函數(shù)
	timerHandler := func() {
		fmt.Println("收到時(shí)間值")
	}
	// 在定時(shí)器發(fā)送時(shí)間值之前執(zhí)行處理函數(shù)
	go timerHandler()
	// 等待定時(shí)器發(fā)送時(shí)間值
	select {
	case <-timer.C:
		fmt.Println("定時(shí)器已發(fā)送時(shí)間值")
	}
}

func Sleep(d Duration)

讓當(dāng)前的 goroutine 休眠指定的時(shí)間。

package main
import (
	"fmt"
	"time"
)
func main() {
	fmt.Println("開始休眠")
	time.Sleep(2 * time.Second)
	fmt.Println("休眠結(jié)束")
}

以上就是Golang time包中的函數(shù)詳解的詳細(xì)內(nèi)容,更多關(guān)于Golang time包函數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • GoLang五種字符串拼接方式小結(jié)

    GoLang五種字符串拼接方式小結(jié)

    本文主要介紹了GoLang五種字符串拼接方式詳解,包括+操作符、fmt.Sprintf、strings.Builder、bytes.Buffer和strings.Join,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-12-12
  • golang 解析word文檔操作

    golang 解析word文檔操作

    這篇文章主要介紹了golang 解析word文檔操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go實(shí)現(xiàn)SMTP郵件發(fā)送訂閱功能(包含163郵箱、163企業(yè)郵箱、谷歌gmail郵箱)

    Go實(shí)現(xiàn)SMTP郵件發(fā)送訂閱功能(包含163郵箱、163企業(yè)郵箱、谷歌gmail郵箱)

    這篇文章給大家介紹了Go實(shí)現(xiàn)SMTP郵件發(fā)送訂閱功能(包含163郵箱、163企業(yè)郵箱、谷歌gmail郵箱),需求很簡單,就是用戶輸入自己的郵箱后,使用官方郵箱給用戶發(fā)送替郵件模版,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2023-10-10
  • Golang數(shù)組的傳遞詳解

    Golang數(shù)組的傳遞詳解

    今天小編就為大家分享一篇關(guān)于Golang數(shù)組的傳遞詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Go語言實(shí)現(xiàn)LRU算法的核心思想和實(shí)現(xiàn)過程

    Go語言實(shí)現(xiàn)LRU算法的核心思想和實(shí)現(xiàn)過程

    這篇文章主要介紹了Go語言實(shí)現(xiàn)LRU算法的核心思想和實(shí)現(xiàn)過程,LRU算法是一種常用的緩存淘汰策略,它的核心思想是如果一個(gè)數(shù)據(jù)在最近一段時(shí)間內(nèi)沒有被訪問到,那么在將來它被訪問的可能性也很小,因此可以將其淘汰,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • Go語言新寵:pdqsort排序算法的完美打造

    Go語言新寵:pdqsort排序算法的完美打造

    pdqsort是一種新的排序算法,特別適用于Go語言,它是由Go語言團(tuán)隊(duì)開發(fā)的,旨在提供高效且穩(wěn)定的排序算法,pdqsort采用了一種分治的策略,將數(shù)組分成小塊進(jìn)行排序,然后再合并這些塊,需要的朋友可以參考下
    2023-10-10
  • 使用Go語言實(shí)現(xiàn)微信公眾平臺(tái)

    使用Go語言實(shí)現(xiàn)微信公眾平臺(tái)

    這篇文章主要介紹了使用Go語言實(shí)現(xiàn)微信公眾平臺(tái),雖然不是全部代碼,但是也是給我們提供了一個(gè)非常好的思路,需要的朋友可以參考下
    2015-01-01
  • Go語言文件讀寫操作案例詳解

    Go語言文件讀寫操作案例詳解

    這篇文章主要為大家介紹了Go語言文件讀寫操作案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Golang 標(biāo)準(zhǔn)庫 tips之waitgroup詳解

    Golang 標(biāo)準(zhǔn)庫 tips之waitgroup詳解

    本篇文章給大家介紹Golang 標(biāo)準(zhǔn)庫 tips之waitgroup的相關(guān)知識(shí),包括使用 channel 實(shí)現(xiàn) WaitGroup 的功能介紹,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • pytorch中的transforms.ToTensor和transforms.Normalize的實(shí)現(xiàn)

    pytorch中的transforms.ToTensor和transforms.Normalize的實(shí)現(xiàn)

    本文主要介紹了pytorch中的transforms.ToTensor和transforms.Normalize的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04

最新評(píng)論

新泰市| 东丰县| 宣武区| 湖南省| 蓬安县| 垦利县| 吴忠市| 日照市| 乌兰察布市| 焦作市| 财经| 济源市| 安庆市| 泰安市| 澄江县| 乐东| 邵阳县| 南通市| 凤阳县| 喜德县| 苗栗市| 张北县| 宁城县| 大同县| 辛集市| 勃利县| 蚌埠市| 洮南市| 交城县| 疏勒县| 定安县| 南召县| 祁门县| 凤翔县| 龙陵县| 靖江市| 介休市| 昆明市| 汤原县| 贞丰县| 彩票|