時間和日期是我們程式設計中經常會用到的,本文主要介紹了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秒。
我們在日常的編碼過程中可能會遇到要求時間+時間間隔的需求,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
。
func
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包
time包下有很多跟時間有關係的方法,以前我們介紹的隨機數就是利用了time包下的乙個方法,接下來我再來介紹一些常用方法 日期和時間 now time,獲取當前的日期 date time,獲取指定的日期 time string,string time 格式化列印當前時間,要按照go語言特定的格式輸入...
Go 語言時間包time的使用
time.time型別表示時間。時間型別 func timedemo 字串型別轉time s4 1999年10月19日 字串 t4,err time.parse 2006年01月02日 s4 if err nil fmt.println t4 時間戳是自1970年1月1日 08 00 00gmt 至...
Go語言基礎之time包
時間和日期是我們程式設計中經常會用到的,本文主要介紹了go語言內建的time包的基本用法。go語言中使用import關鍵字匯入包,包的名字使用雙引號 包裹起來。import time import fmt 匯入多個包時可以使用圓括號,包名的順序不影響匯入效果,例如 import fmt time 需...