protected function getFormatter($options = array()) {
		$locale = empty($options['locale']) ? $this->locale : $options['locale'];
		$calendar = empty($options['calendar']) ? $this->calendar : $options['calendar'];
		$timezone = empty($options['timezone']) ? $this->getTimezone() : $options['timezone'];
		if (is_a($timezone, 'DateTimeZone')) $timezone = $timezone->getName();
		$pattern = empty($options['pattern']) ? null : $options['pattern'];
		return new \IntlDateFormatter($locale . '@calendar=' . $calendar,
				\IntlDateFormatter::FULL,  \IntlDateFormatter::FULL, $timezone,
				$calendar == 'gregorian' ? \IntlDateFormatter::GREGORIAN : \IntlDateFormatter::TRADITIONAL, $pattern);
	}