23 Go語言標準庫之time包

2021-10-11 16:11:38 字數 3117 閱讀 2519

時間和日期是我們程式設計中經常會用到的,本文主要介紹了go語言內建的time包的基本用法。

time包提供了時間的顯示和測量用的函式。日曆的計算採用的是公曆。

time.time型別表示時間。我們可以通過time.now()函式獲取當前的時間物件,然後獲取時間物件的年月日時分秒等資訊。示例**如下:

func

timedemo()

時間戳是自2023年1月1日(08:00:00gmt)至當前時間的總毫秒數。它也被稱為unix時間戳(unixtimestamp)。

基於時間物件獲取時間戳的示例**如下:

func

timestampdemo()

使用time.unix()函式可以將時間戳轉為時間格式。

func

timestampdemo2

(timestamp int64

)

time.durationtime包定義的乙個型別,它代表兩個時間點之間經過的時間,以納秒為單位。time.duration表示一段時間間隔,可表示的最長時間段大約290年。

time包中定義的時間間隔型別的常量如下:

const

( nanosecond duration =

1 microsecond =

1000

* nanosecond

millisecond =

1000

* microsecond

second =

1000

* millisecond

minute =

60* second

hour =

60* minute

)

例如:time.duration表示1納秒,time.second表示1秒。

package main

import

("fmt"

"time")/*

時間操作

*/func

main()

//時間格式化

func

test1()

//時間轉時間戳

func

test2()

func

test3()

//時間戳轉時間

func

test4()

//執行結果:

//當前時間戳: 1627285354

//時間戳: 1627284731

在日常的編碼過程中可能會遇到要求時間+時間間隔的需求,go語言的時間物件有提供add方法如下:

func

(t time)

add(d duration) time

func

main()

求兩個時間之間的差值:

func

(t time)

sub(u time) duration

返回乙個時間段t-u。如果結果超出了duration可以表示的最大值/最小值,將返回最大值/最小值。要獲取時間點t-d(d為duration),可以使用t.add(-d)。

func

(t time)

equal

(u time)

bool

判斷兩個時間是否相同,會考慮時區的影響,因此不同時區標準的時間也可以正確比較。本方法和用t==u不同,這種方法還會比較地點和時區資訊。

func

(t time)

before

(u time)

bool

如果t代表的時間點在u之前,返回真;否則返回假。

func

(t time)

after

(u time)

bool

如果t代表的時間點在u之後,返回真;否則返回假。

使用time.tick(時間間隔)來設定定時器,定時器的本質上是乙個通道(channel)。

func

tickdemo()

}

時間型別有乙個自帶的方法format進行格式化,需要注意的是go語言中格式化時間模板不是常見的y-m-d h:m:s而是使用go的誕生時間2023年1月2號15點04分(記憶口訣為2006 1 2 3 4)。

注意:如果想格式化為12小時方式,需指定pm。

unc formatdemo()

now := time.

now(

)fmt.

println

(now)

// 載入時區

loc, err := time.

loadlocation

("asia/shanghai"

)if err !=

nil// 按照指定時區和指定格式解析字串時間

timeobj, err := time.

parseinlocation

("2006/01/02 15:04:05"

,"2019/08/04 14:15:20"

, loc)

if err !=

nilfmt.

println

(timeobj)

fmt.

println

(timeobj.

sub(now)

)

返回主目錄

說明:文章參考於李文周老師筆記(看詳細內容請檢視源筆記)

Go語言標準庫之time

時間的格式化和解析package main import fmt time func main 輸出結果是 2019 01 01 10 45 502019 01 01 10 45 50 2019年01月01日 10 45 50在系統中還提供了一些預設的格式 ansic mon jan 2 15 04...

Go 學習筆記 標準庫之 time 包

go 有很多內建的標準庫,裡面封裝了很多開發中會用到的一些函式,使用這些函式可以簡化 提高開發效率。time 包就是其中之一,它裡面封裝了處理日期時間需要用到的一些功能。今天因為要做乙個功能,稍微了解了一下 time 包,官方文件,暫時先將這個功能裡面需要用到的一些方法記錄下來,以後碰到其他的知識再...

Go語言基礎之time包

時間和日期是我們程式設計中經常會用到的,本文主要介紹了go語言內建的time包的基本用法。go語言中使用import關鍵字匯入包,包的名字使用雙引號 包裹起來。import time import fmt 匯入多個包時可以使用圓括號,包名的順序不影響匯入效果,例如 import fmt time 需...