在 go 中获取时间戳的方法:1. time.now().unix() 函数返回以秒为单位的 unix 时间戳;2. time.since() 方法计算自给定时间以来的时间戳;3. time.unix() 函数从 unix 时间戳创建 time.time 值。注意:unix 时间戳是自 unix 纪元以来的秒数,通常存储为 int64 类型,且可能受时区影响。
如何在 Go 中获取时间戳
时间戳是表示特定时刻的数字值,通常以从某个参考点(通常是 Unix 纪元)开始的秒数表示。在 Go 中,有几种方法可以获取时间戳。
1. time.Now() 函数
time.Now() 函数返回当前时间,它是一个具有时间和时区信息的 time.Time 值。您可以使用 time.Time.Unix() 方法从 time.Time 值获取 Unix 时间戳。
示例:
import (
"fmt"
"time"
)
func main() {
now := time.Now()
unixTimestamp := now.Unix()
fmt.Println(unixTimestamp)
}
2. time.Since() 方法
time.Since() 方法返回自给定时间以来经过的时间。您可以将其与 time.Now() 结合使用以获取从特定时刻起的时间戳。
示例:
import (
"fmt"
"time"
)
func main() {
start := time.Now()
// 执行一些耗时操作
end := time.Now()
timestamp := end.Sub(start).Seconds()
fmt.Println(timestamp)
}
3. time.Unix() 和 time.UnixNano() 函数
time.Unix() 和 time.UnixNano() 函数允许您直接从 Unix 时间戳创建 time.Time 值。time.Unix() 使用秒数,而 time.UnixNano() 使用纳秒数。
示例:
import (
"fmt"
"time"
)
func main() {
unixTimestamp := int64(1665859200)
t := time.Unix(unixTimestamp, 0)
fmt.Println(t)
}
注意:
- Unix 时间戳是自 Unix 纪元(1970 年 1 月 1 日协调世界时 00:00:00)以来的秒数。
- Go 中的时间戳通常存储为 int64 类型,它可以表示非常大的数字。
- time.Time 值还包含时区信息,因此时间戳可能会根据所使用的时区而有所不同。