如何直接用时区解析日期和时间

我有这些代码:


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 来说可能吗?


哈士奇WWW
浏览 81回答 1
1回答

喵喵时光机

你永远不会有0001-01-01 00:00:00 +0700 UTC,因为你忽略了错误,0001-01-01 00:00:00 +0000 UTC是一个零值。最后一条语句返回有关解析的错误,这是正确的版本。package mainimport (    "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 – 印度尼西亚西部时间)
打开App,查看更多内容
随时随地看视频慕课网APP