Time类型
Time类型代表一个纳米的时间精度。
程序使用Time类型值来保存和传递时间而不是指针。
now := time.Now()//返回time.Time类型而不是*time.Time类型
Sub方法让两个时间点相减,产生一个Duration类型值(代表时间段)。
Add让一个时间点加上一个时间段,生成一个新的时间点
使用IsZero检验是否初始化。
时间戳
当前时间距离1970年1月1日0时0分0秒的时间(秒),也成为Unix时间戳。
Parse解析时间
以固定格式解析时间,返回一个Time类型
默认为UTC时间,比北京少了8小时
格式化时间
以固定格式格式化时间,返回一个string
时间间隔
time.Duration 是time包定义的一个类型,代表两点之间经过的时间,以纳米为单位。表示一段时间间隔,最大约为290年。
其中常量如下:
time.Duration本质为一个int64.
Sec :=time.Second()//1秒
Min5 :=5*time.Minute()//5分钟
时间计算
Add
Sub
func (t time) Sub(t Time) Duration
使用的时候需要注意时区问题。用Parse解析出的时间可能会遇到时区问题。
Equal
Equal对比两个时间是否相等,且支持不同时区比较。
也可以用=比较,但是=不考虑时区。
After
对比是否在某一时间之后
Before
对比是否在某一时间之前
定时器
使用time.Tick设置定时器,本质上是一个channel
每5秒钟返回一个Time,一直循环返回
time.AfterFunc(time.Duration )
5秒之后执行Func
time.Newtimer(time.Duration )
创建一个Timer,在最少过去d时间段后向自身的C字段返回当前时间。
timer是一个定时器,到固定时间后会执行一次。
可使用
func (t *Timer) Reset(d Duration) bool
重置计时,实现ticker效果。
time.NewTicker(time.Duration )
创建一个Ticker,其包含一个通道,每隔d时间段后向自身的C字段返回当前时间。
ticker只要定义,从此刻开始计时,每固定间隔时间都会触发。
使用举例: