我在尝试格式化和显示一些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/

10-13 02:04