public function to(
        $locale = 'en_US',
        $calendar = null,
        $timezone = 'UTC'
    ) {
        $calendar = $calendar !== null ? $calendar : self::$CAL_PERSIAN;

        $this->setIntlDateFormatter()
            ->setToCalendar($calendar)->setToLocale($locale)
            ->setFinalTimeZone($timezone)
            ->setFinalCalendar($this->getToLocaleAndCalendar());

        if ($calendar == self::$CAL_GREGORIAN) {
            $this->setFinalCalendarType(IntlDateFormatter::GREGORIAN);
        } else {
            $this->setFinalCalendarType(IntlDateFormatter::TRADITIONAL);
        }

        return $this;
    }