我在尝试格式化和显示一些 IBM 大型机 TOD 时钟数据时遇到了一些困难。我想以 GMT 和本地时间格式化数据(作为默认时间 - 否则在用户指定的区域中)。
为此,我需要获取距 GMT 的本地时间偏移值,以有符号整数秒数表示。
在zoneinfo.go(我承认我不完全理解)中,我可以看到
// A zone represents a single time zone such as CEST or CET.
type zone struct {
name string // abbreviated name, "CET"
offset int // seconds east of UTC
isDST bool // is this zone Daylight Savings Time?
}
但我认为这不是导出的,所以这段代码不起作用:
package main
import ( "time"; "fmt" )
func main() {
l, _ := time.LoadLocation("Local")
fmt.Printf("%v\n", l.zone.offset)
}
有没有一种简单的方法来获取这些信息?
您可以在时间类型上使用 Zone() 方法:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
zone, offset := t.Zone()
fmt.Println(zone, offset)
}
Zone 计算在时间 t 有效的时区,返回该区域的缩写名称(例如“CET”)及其以 UTC 以东的秒数的偏移量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)