- &null;, in which case the default timezone will be used, as specified in the ini setting date.timezone or through the function `date_default_timezone_set` and as returned by `date_default_timezone_get`.

- An `IntlTimeZone`, which will be used directly.

- A `DateTimeZone`. Its identifier will be extracted and an ICU timezone object will be created; the timezone will be backed by ICUʼs database, not PHPʼs.

- A `string`, which should be a valid ICU timezone identifier. See `IntlTimeZone::createTimeZoneIDEnumeration`. Raw offsets such as `"GMT+08:30"` are also accepted.