def validate_timezone_identifier(identifier)
      raise InvalidTimezoneIdentifier, "Invalid identifier: #{identifier.nil? ? 'nil' : identifier}" unless identifier.kind_of?(String)

      valid_identifier = try_with_encoding(identifier, timezone_identifier_encoding) {|id| find_timezone_identifier(id) }
      return valid_identifier if valid_identifier

      raise InvalidTimezoneIdentifier, "Invalid identifier: #{identifier.encode(Encoding::UTF_8)}"
    end
def validate_timezone_identifier(identifier)
      raise InvalidTimezoneIdentifier, "Invalid identifier: #{identifier.nil? ? 'nil' : identifier}" unless identifier.kind_of?(String)

      valid_identifier = try_with_encoding(identifier, timezone_identifier_encoding) {|id| find_timezone_identifier(id) }
      return valid_identifier if valid_identifier

      raise InvalidTimezoneIdentifier, "Invalid identifier: #{identifier.encode(Encoding::UTF_8)}"
    end
Checks that the given identifier is a valid time zone identifier (can be
 found in the {timezone_identifiers} `Array`). If the identifier is valid,
 the `String` instance representing that identifier from
 `timezone_identifiers` is returned. Otherwise an
 {InvalidTimezoneIdentifier} exception is raised.

 @param identifier [String] a time zone identifier to be validated.
 @return [String] the `String` instance equivalent to `identifier` from
   {timezone_identifiers}.
 @raise [InvalidTimezoneIdentifier] if `identifier` was not found in
   {timezone_identifiers}.