目录
1.获取时间
1.1 当前时间
1 | unix := time.Now().Unix() |
1.2 当前年、月、日、时、分、秒、星期几
1 | format := time.Now().Format("2006-01-02 15:04:05") |
1.3 获取时分秒
1 | now := time.Now() |
1.4 创建指定时间
1 | date := time.Date(2020,8,23,13,53,32,0,time.Local) |
1.5 获取所属第几周
1 | // 获取当前时间是,今年的第几周 |
1.6 获取x年的第几天
1 | num := time.Now().YearDay() |
2.字符串转时间
2.1 字符串转时间类型
1 | str := "1616319808" |
2.2 格式化时间
Format根据layout指定的格式返回t代表的时间点的格式化文本表示;Format中内置了几个固定的layout常量。
1 | const ( |
使用:
1 | // 将字符时间: 2020-09-12 14:34:10 转成 20200912143410 |
3.时间比较
1 | strDate := "2020-09-12 12:00:00" |
4.时间计算
4.1 时间相加
1 | now := time.Now() |
4.2 时间相减
1 | day1, _ := time.ParseInLocation("2006-01-02 15:04:05", "2020-11-02 12:00:00", time.Local) |
5.定时器
5.1 NewTicker
NewTicker返回一个新的Ticker,该Ticker包含一个通道字段,并会每隔时间段d就向该通道发送当时的时间。它会调整时间间隔或者丢弃tick信息以适应反应慢的接收者。如果d<=0会panic。关闭该Ticker可以释放相关资源。
使用示例
1 | func main() { |
5.2 Tick
Tick是NewTicker的封装,只提供对Ticker通道的访问。如果不需要关闭Ticker,本函数就很方便。
1 | func main() { |
6.延迟执行
6.1 NewTimer
NewTimer创建一个Timer,它会在指定时间后,向其自身的C字段发送当时的时间。
1 | func main() { |
6.2 After
After()
函数相当于NewTimer(d).C
,如下源码:
1 | func After(d Duration) <-chan Time { |
使用示例
1 | func main() { |