在Go中解析时间戳

I'm calling a service based on the JSON SIRI API, which is returning timestamps in the format

"ResponseTimestamp": "/Date(1497923363000+0930)/"

which looks like milliseconds since the Unix epoch, plus the local time zone offset.

Do the standard Go packages include a means to parse this format, and if so, what is it?

I have searched this site and others for terms such as parse, golang, timestamp, ticks, epoch. It gets mentioned in the context of JavaScript, but not Go. I have looked in the Go source code for the packages, but haven't found any reference to this format.

I can code my own function to do this, but I thought a parser for the format would be included with Go.

Perhaps, but in case it's not, here's how you can do it yourself:

pattern := regexp.MustCompile(`\A/Date\((\d+)([+-]\d+)\)/\z`)
m := pattern.FindStringSubmatch(res.ResponseTimestamp)
if len(m) == 0 {
    // Handle error: not a datetime in the expected format
}

// Get the milliseconds part
ms, err := strconv.Parseint(m[1], 10, 64)
// Handle err (in the rare case of, say, an out of range error)

// Use Go's time parser to parse the timezone part
tForLoc, err := time.Parse("-0700", m[2])
// Handle err (invalid timezone spec)

// Combine the milliseconds, the timezone, and the Unix epoch
t := time.Date(1970, 1, 1, 0, 0, 
    int(ms/1000), int((ms%1000)*1e6, tForLoc.Location())

return t