使用time.Unix方法可以将时间戳转换为时间类型,时间类型如果要转换为可读内容,需要指定时区。我们的例子选用了常见的背景时间UTC+8(GMT)和格林威治时间UTC+0。
package main
import (
"fmt"
"time"
)
func main() {
unixTime := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
fmt.Println(unixTime.Unix())
t := time.Unix(unixTime.Unix(), 0).UTC()
fmt.Println(t)
}
时区默认使用本地时间,也就是服务器配置的时区,也可以通过FixedZone来指定时区进行转换。通过time.Format方法转换成可读字符串,新版本Go引入了DateOnly和TimeOnly两个格式类型,好评👍。
package main
import (
"fmt"
"time"
)
func main() {
loc := time.FixedZone("UTC+8", 8*60*60)
t := time.Date(2009, time.November, 10, 23, 0, 0, 0, loc)
fmt.Println("The time is:", t.Format(time.RFC822))
}