我在尝试格式化和显示一些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以东的秒数内的偏移量。
关于go - 如何提取当前本地时间偏移的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34975007/