in go/datetime.go [66:84]
func parseAthenaTimeWithLocation(v string) (AthenaTime, error) {
idx := strings.LastIndex(v, " ")
if idx == -1 {
return AthenaTime{}, fmt.Errorf("cannot convert %v (%T) to time+zone", v, v)
}
stamp, location := v[:idx], v[idx+1:]
loc, err := time.LoadLocation(location)
if err != nil {
return AthenaTime{}, fmt.Errorf("cannot load timezone %q: %v", location, err)
}
var t time.Time
for _, layout := range timeLayouts {
t, err = time.ParseInLocation(layout, stamp, loc)
if err == nil {
return AthenaTime{Valid: true, Time: t}, nil
}
}
return AthenaTime{}, err
}