golang中字符串的时间转换

标签 time go

我正在尝试将从 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))
}

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

关于golang中字符串的时间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33657280/

相关文章:

php - 如何找到php执行时间?

java - joda DateTime 解析器错误

去嵌套结构

go - 在go中使用new和channel

javascript - Golang 请求的资源上不存在 'Access-Control-Allow-Origin' header 。因此不允许访问 Origin 'null'

r - 完成序列列并填写行

php - 在 HH :MM format php 中获取时间差

以微秒为单位的 Java utc 时间和以 15 微秒为单位的 block

arrays - 如何过滤掉 Gerrit JSON api 响应的前几个坏字符

list - 比较两个golang列表以检查所有元素的方法是唯一的