1 秒=1000 毫秒;1 毫秒=1000 微秒;1 微秒=1000 纳秒
1e9即是数10的9次方的数学表达,可写作:1000000000,即10亿。
//定义时间格式输出
const (
TimeSecondFormart = "2006-01-02 15:04:05"
TimeNanoSecondFormart = "2006-01-02 15:04:05.000000000"
)
package main
import (
"fmt"
"time"
)
func main() {
//当前时区时间-时间戳
fmt.Println("时间戳:", time.Now())
fmt.Println("时间戳(秒):", time.Now().Unix()) //获取秒的时间戳
fmt.Println("时间戳(毫秒):", time.Now().UnixNano() / 1e6) //获取秒的时间戳
fmt.Println("时间戳(纳秒):", time.Now().UnixNano())
fmt.Println("时间戳(纳秒转换为秒):", time.Now().UnixNano() / 1e9)
fmt.Println("时间戳-格式化:", time.Now().Format("2006-01-02 15:04:05"))
//当前时区时间秒数
//UTC时区时间秒数
t := time.Now().UTC().Unix() //t的类型为int64
fmt.Println("时间秒数t :", t)
t1 := time.Unix(t, 0).Format("2006-01-02 15:04:05")
fmt.Println(" 格式化t1:", t1)
t2, _ := time.Parse("2006-01-02 15:04:05", t1)
fmt.Println(" 格式化t2:", t2)
t3 := t2.Unix()
fmt.Println("时间秒数t3:", t3)
//东八时区-CST
time1 := time.Unix(t + 8 * 60 * 60, 0)
//当前时间戳格式
fmt.Println("时间戳:", time1.String())
time2 := time.Now().UTC().Add(8 * time.Hour)
fmt.Println(time2.Format("2006-01-02 15:04:05"))
fmt.Println(time2.Location())
fmt.Println(time2.Zone())
fmt.Println(time2.Unix())
}
结果:
时间戳: 2021-10-28 03:04:10.565428074 -0400 EDT m=+0.000114167
时间戳(秒): 1635404650
时间戳(毫秒): 1635404650565
时间戳(纳秒): 1635404650565577117
时间戳(纳秒转换为秒): 1635404650
时间戳-格式化: 2021-10-28 03:04:10
时间秒数t : 1635404650
格式化t1: 2021-10-28 03:04:10
格式化t2: 2021-10-28 03:04:10 +0000 UTC
时间秒数t3: 1635390250
时间戳: 2021-10-28 11:04:10 -0400 EDT
2021-10-28 15:04:10
UTC
UTC 0
1635433450
另外,可参考链接:
golang的time包:秒、毫秒、纳秒时间戳输出方式
https://www.jb51.net/article/202248.htm
golang的定时器NewTimer、NewTicker使用
https://blog.csdn.net/busai2/article/details/82503699