我是Go的新手,我在尝试格式化和显示一些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) }
区域计算在时间t生效的时区,并返回该区域的缩写名称(例如“ CET”)及其在UTC以东的秒数内的偏移量。