time 包常用方法

获取当前时间

使用 time.Now() 获取当前时间。

1
2
3
4
5
6
7
8
9
10
11
package main

import (
"fmt"
"time"
)

func main() {
t := time.Now()
fmt.Println(t)
}

格式化时间

使用 Format 方法将时间格式化为指定的字符串格式。

1
2
3
4
5
6
7
8
9
10
11
package main

import (
"fmt"
"time"
)

func main() {
t := time.Now()
fmt.Println(t.Format("2006-01-02 15:04:05"))
}

时间加减

使用 Add 方法对时间进行加减操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main

import (
"fmt"
"time"
)

func main() {
t := time.Now()
week := 60 * 60 * 24 * 7 * 1e9 // 一周的纳秒数
weekDuration := time.Duration(week)
tt := t.Add(weekDuration)
fmt.Println(tt.Format("2006-01-02 15:04:05"))
}

计算时间差

使用 Sub 方法计算两个时间之间的差值。

1
2
3
4
5
6
7
8
9
10
11
12
13
package main

import (
"fmt"
"time"
)

func main() {
t1 := time.Now()
t2 := t1.Add(time.Hour * 24)
diff := t2.Sub(t1)
fmt.Println(diff)
}

解析时间字符串

使用 Parse 方法将时间字符串解析为 time.Time 对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package main

import (
"fmt"
"time"
)

func main() {
timeStr := "2023-10-01 12:00:00"
t, err := time.Parse("2006-01-02 15:04:05", timeStr)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(t)
}
}