In Go, while trying to convert string to time.Time
, using time package's Parse method doesn't return expected result. It seems problem is with the timezone. I want to change to ISO 8601 combined with date and time in UTC.
package main
import (
"fmt"
"time"
)
func main() {
const longForm = "2013-05-13T18:41:34.848Z"
//even this is not working
//const longForm = "2013-05-13 18:41:34.848 -0700 PDT"
t, _ := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700 PDT")
fmt.Println(t)
//outputs 0001-01-01 00:00:00 +0000 UTC
}
thanks in advance!
time.Parse
uses special values for time formatting, and expecting the format to be passed with those values.If you pass correct values, it will parse the time in the correct manner.
So passing year as 2006, month as 01 and goes on like that...
Your format string
longForm
is not correct. You would know that if you would have not been ignoring the returned error. Quoting the docs:Playground
Output: