時間和日期是我們程式設計中經常會用到的,本文主要介紹了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.duration
是time
包定義的乙個型別,它代表兩個時間點之間經過的時間,以納秒為單位。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 需...