我正在尝试将从 NOAA 观测中抓取的时间/日期从 UTC 转换为太平洋时间。原始数据被格式化为固定宽度的空格分隔字符串,我通过 strings.Field 将其转换为字符串数组。
原始数据如下:
2015 11 11 16 50
存储为:
data[0:5]
请注意,data
具有在程序其他地方使用的其他观察结果。如何将其转换为太平洋时间,使其全年正确,包括夏令时的变化?我最终想以 RFC822 格式打印出来(即“02 Jan 06 15:04 PST”)。
最佳答案
您可以使用 time.Parse 和 Go 的引用时间 (https://golang.org/pkg/time/#pkg-constants) 将原始数据直接解析为 UTC 时间,然后加载 PST 位置并将时间转换为该位置。然后可以根据需要对其进行格式化,例如:
func main() {
t, err := time.Parse("2006 01 02 15 04", "2015 11 11 16 50")
fmt.Println(t, err)
loc, err := time.LoadLocation("America/Los_Angeles")
fmt.Println(loc, err)
t = t.In(loc)
fmt.Println(t.Format(time.RFC822))
}
关于golang中字符串的时间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33657280/