📅  最后修改于: 2023-12-03 14:41:34.292000             🧑  作者: Mango
在Golang中,时间和日期都是由time包中的Time类型表示的。其中,Time类型有一个名为Zone()的方法,可以用来获取当前实例所在的时区信息。
func (t Time) Zone() (name string, offset int)
该方法没有参数。
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间
t := time.Now()
// 获取当前时区信息
name, offset := t.Zone()
fmt.Printf("当前时区名称:%s\n", name)
fmt.Printf("与UTC的时间差:%d 秒\n", offset)
}
执行上述代码,输出结果如下:
当前时区名称:UTC
与UTC的时间差:0 秒
说明当前时区为UTC,并且与UTC的时间差为0秒。
我们可以通过设置location来实现时区的转换。
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间
t := time.Now()
// 获取当前时区信息
name, offset := t.Zone()
fmt.Printf("当前时区名称:%s\n", name)
fmt.Printf("与UTC的时间差:%d 秒\n", offset)
// 按照指定时区格式化时间
loc, _ := time.LoadLocation("Asia/Shanghai")
fmt.Println(t.In(loc).Format("2006-01-02 15:04:05"))
}
输出结果如下:
当前时区名称:UTC
与UTC的时间差:0 秒
2022-02-22 21:40:46
说明当前时区为UTC,按照Asia/Shanghai时区格式化时间,输出结果是UTC时间加了8小时。