/**
  * @param GeocodeCached $geocode
  * @param bool $forceUpdate
  * @return string timezone identifier
  */
 public function getTimeZone(GeocodeCached $geocode, $forceUpdate = false)
 {
     if (!$forceUpdate && $geocode->timezone) {
         return $geocode->timezone;
     }
     $timezone = $this->checkSingleCountryTimezone($geocode);
     if (!$timezone) {
         $timezone = $this->lookupTimeZoneByGeoCode($geocode->getGeocode());
     }
     //set time zone
     if ($timezone) {
         if ($geocode->city) {
             //update all cities wthin this country
             $where = \DbTableWhere::get()->where('country_iso', $geocode->country_iso)->where('city', $geocode->city);
             GeocodeCached::table()->update(['timezone' => $timezone], $where->getWhereString());
         } else {
             $geocode->update(['timezone' => $timezone]);
         }
     }
     return $timezone;
 }