Retrieve a list of CLDR time zones to which a phone number belongs.

get_timezone(
  x,
  strict = FALSE,
  show_progress = getOption("dialr.show_progress")
)

Arguments

x

A phone vector.

strict

Should invalid phone numbers be removed? If TRUE, invalid phone numbers are replaced with NA.

show_progress

Should a progress bar be displayed? Defaults to the option dialr.show_progress.

Value

A character vector of time zones to which each phone number belongs, separated by ;, or the default unknown time zone "Etc/Unknown" if no other time zone was found.

Details

This function assumes the phone number is geo-localizable. Fixed-line and mobile numbers are considered possible candidates for geo-localization.

libphonenumber reference

get_timezone(): PhoneNumberToTimeZonesMapper.getTimeZonesForGeographicalNumber().

Examples

x <- phone(c(0, 0123, "0412 345 678", "61412987654", "03 9123 4567", "+12015550123"), "AU")
get_timezone(x)
#> [1] NA                 "Australia/Sydney" "Australia/Sydney" "Australia/Sydney"
#> [5] "Australia/Sydney" "America/New_York"
get_timezone(x, strict = TRUE)
#> [1] NA                 NA                 "Australia/Sydney" "Australia/Sydney"
#> [5] "Australia/Sydney" "America/New_York"

# Return a list
strsplit(get_timezone(x), ";")
#> [[1]]
#> [1] NA
#> 
#> [[2]]
#> [1] "Australia/Sydney"
#> 
#> [[3]]
#> [1] "Australia/Sydney"
#> 
#> [[4]]
#> [1] "Australia/Sydney"
#> 
#> [[5]]
#> [1] "Australia/Sydney"
#> 
#> [[6]]
#> [1] "America/New_York"
#>