在golang中从字符串转换时间

时间:2015-11-11 18:23:42

标签: time go

我试图将从NOAA观察中爬行的时间/日期从UTC转换为太平洋时间。原始数据被格式化为固定宽度空格分隔的字符串,我通过strings.Field将其转换为字符串数组。

原始数据如下:

data[0:5]

它存储为:

data

请注意,{{1}}还有其他观察结果,可在程序的其他地方使用。如何将其转换为太平洋时间,使其全年正确,包括夏令时变化?我最终希望以RFC822格式打印出来(即" 02年1月6日15:04太平洋标准时间和#34;)。

1 个答案:

答案 0 :(得分:4)

您可以使用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))
}

http://play.golang.org/p/mIXxVhmkDB