time 包的简单使用
时区
- 中国大陆一共分了5个时区,以哈尔滨 ( Asia/Harbin)、上海(Asia/Shanghai)、重庆(Asia/Chongqing)、乌鲁木齐(Asia/Urumqi)、喀什(Asia/Kashgar)
- 长白时区GMT+8:30、中原标准时区 GMT+8、陇蜀时区GMT+7、新藏时区GMT+6和昆仑时区GMT+5:30。它是1912年北京观象台制订,后由内政部批准过。
- 香港时区(Asia/Hong_Kong或者Hongkong),台北(Asia/Taipei)
时间格式化
- 使用
Format
函数进行格式化 - 最常使用格式化模板
2006-01-02 15:04:05
- 使用范例:
package main
import (
"fmt"
"time"
)
const TimeLayout = "2006-01-02 15:04:05"
func main() {
fmt.Println(time.Now().Format(TimeLayout))
}
字符串转时间
- 通过
Parse
转换,默认是UTC
时间
package main
import (
"fmt"
"time"
)
const TimeLayout = "2006-01-02 15:04:05"
func main() {
timeString := "2008-08-08 20:08:08"
fmt.Println(time.Parse(TimeLayout, timeString))
}
通过
ParseInLocation
转换,需要传时区示例
package main import ( "fmt" "time" ) const TimeLayout = "2006-01-02 15:04:05" func main() { timeString := "2008-08-08 20:08:08" fmt.Println(time.ParseInLocation(TimeLayout, timeString, time.Local)) }
time.Local
返回本机时区通过时区名返回时区
loc, err := time.LoadLocation("Asia/Shanghai")
Unix 时间戳转时间
package main
import (
"fmt"
"time"
)
func main() {
unixSeconds := int64(1688110691)
fmt.Println(time.Unix(unixSeconds, 0))
}
时间运算
- 计算时间差
func Until(t Time) Duration
func Since(t Time) Duration 两个时间点的间隔
func (t Time) Sub(u Time) Duration
- 计算时间点
func (t Time) Add(d Duration) Time
func (t Time) AddDate(years int, months int, days int) Time
- 时间比较
func (t Time) Before(u Time) bool
func (t Time) After(u Time) bool
func (t Time) Equal(u Time) bool
延时,定时任务
time.Sleep(time.Duration(10) * time.Second)
func After(d Duration) <-chan Time
func AfterFunc(d Duration, f func()) *Timer
package main
import (
"fmt"
"time"
)
func main() {
count := 0
ticker := time.NewTicker(1 * time.Second)
for t := range ticker.C {
fmt.Println(t)
count++
fmt.Println(count)
if count == 10 {
ticker.Stop()
break
}
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接