Go 语言中的 time
包提供了丰富的API来处理时间,包括时间的表示、测量、解析、格式化以及定时器等。下面是一些常用的 time
包API的概述:
时间表示
time.Time
:代表一个时间点。time.Now()
:返回当前本地时间。time.Date(year int, month Month, day, hour, minute, second, nsec int, loc *Location) Time
:根据给定的年、月、日、时、分、秒、纳秒和时区返回一个Time
值。time.Unix(sec int64, nsec int64) Time
:根据Unix时间戳(秒和纳秒)返回一个Time
值。
时间测量
time.Since(t Time) Duration
:返回自t
以来经过的时间。time.Until(t Time) Duration
:返回直到t
之前还需要经过的时间。
时间间隔(Duration)
time.Duration
:表示两个时间点之间经过的时间,以纳秒为单位。time.Hour
、time.Minute
、time.Second
、time.Millisecond
、time.Microsecond
、time.Nanosecond
等常量用于表示时间间隔。
时间的格式化与解析
Time.Format(layout string) string
:根据给定的格式字符串将时间格式化为字符串。time.Parse(layout, value string) (Time, error)
:根据格式字符串解析时间字符串。time.ParseInLocation(layout, value string, loc *Location) (Time, error)
:在指定的时区解析时间字符串。
时区
time.LoadLocation(name string) (*Location, error)
:根据名称加载时区。time.Local
:表示本地时区。time.UTC
:表示UTC时区。
定时器
time.Tick(d Duration) <-chan Time
:定期返回一个时间的通道,周期为d
。time.After(d Duration) <-chan Time
:在指定的时间后发送当前时间的通道。time.AfterFunc(d Duration, f func()) *Timer
:在指定的时间后调用函数f
,并返回一个Timer
以便取消。time.NewTimer(d Duration) *Timer
:创建一个新的计时器,经过指定的时间后触发。time.NewTicker(d Duration) *Ticker
:创建一个新的Ticker,该Ticker会周期性地发送时间。
时间的修改
Time.Add(d Duration) Time
:返回时间t
加上时间间隔d
之后的时间。Time.Sub(u Time) Duration
:返回t
和u
之间的时间间隔。Time.Round(d Duration) Time
:根据给定的时间间隔d
对时间t
进行四舍五入。Time.Truncate(d Duration) Time
:将时间t
向下取整到最接近的d
的倍数。