我有这些代码:
package main
import (
"fmt"
"time"
)
func main() {
tzJakarta, _ := time.LoadLocation("Asia/Jakarta")
stringTime := fmt.Sprintf("05-05-2019 05:11 %s", tzJakarta)
parsedTime, _ := time.Parse("02-01-2006 15:04 MST", stringTime)
fmt.Println(tzJakarta)
fmt.Println(stringTime)
fmt.Println(parsedTime)
}
输出为:
Asia/Jakarta
05-05-2019 05:11 Asia/Jakarta
0001-01-01 00:00:00 +0000 UTC
我期望的是:
Asia/Jakarta
05-05-2019 05:11 Asia/Jakarta
0001-01-01 00:00:00 +0700 UTC
我该如何实现? Go完全可行吗?
您永远不会拥有0001-01-01 00:00:00 +0700 UTC
,因为您会忽略错误,0001-01-01 00:00:00 +0000 UTC
是零值。最后一条语句返回有关解析的错误,这是正确的版本。
package main
import (
"fmt"
"time"
)
func main() {
loc, _ := time.LoadLocation("Asia/Jakarta")
// Note: without explicit zone, returns time in given location.
const shortForm = "02-01-2006 15:04"
t, _ := time.ParseInLocation(shortForm, "05-05-2019 05:11", loc)
fmt.Println(t)
}
输出:
2019-05-05 05:11:00 +0700 WIB
((WIB-西印尼时间)] >>