in phonenumbers.go [3377:3406]
func GetTimezonesForPrefix(number string) ([]string, error) {
var err error
timezoneOnce.Do(func() {
timezoneMap, err = loadIntStringArrayMap(gen.TimezoneData)
})
if timezoneMap == nil {
return nil, fmt.Errorf("error loading timezone map: %v", err)
}
// strip any leading +
number = strings.TrimLeft(number, "+")
matchLength := len(number) // maxLength: min( len(number), timezoneMap.MaxLength )
if matchLength > timezoneMap.MaxLength {
matchLength = timezoneMap.MaxLength
}
for i := matchLength; i > 0; i-- {
index, err := strconv.Atoi(number[0:i])
if err != nil {
return nil, err
}
tzs, found := timezoneMap.Map[index]
if found {
return tzs, nil
}
}
return []string{UNKNOWN_TIMEZONE}, nil
}