golang: time计算问题(8)

某段代码运行时间的计算。

专栏的介绍可以参考 《GotchaGolang专栏》,代码可以看《宝库-Gotcha》

这个问题还是比较常见的,一般用减法,但是有更好的方法。

一般怎么写?

1
2
3
4
5
6
7
t1 := time.Now()
time.Sleep(5 * time.Second)
t2 := time.Now()

duration := t2.Sub(t1)

fmt.Println(duration)

如果简写,可以写成 duration := time.Now().Sub(t1)

直接用 time.Since() 其实更好:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main
import (
"time"
"fmt"
)

func () {

t1 := time.Now()
time.Sleep(5 * time.Second)
duration := time.Since(t1)

fmt.Println(durantion)
}

Merlin 2018.3 time 的 shorthand