public function getTimeZone()
{
if ($this->timeZone === null) {
$timeZone = $this->getAttribute('TimeZone', c('Garden.GuestTimeZone'));
$hourOffset = $this->hourOffset();
if (!$timeZone) {
if (is_numeric($hourOffset)) {
$timeZone = 'Etc/GMT' . sprintf('%+d', -$hourOffset);
} else {
$timeZone = date_default_timezone_get();
}
}
try {
$this->timeZone = new DateTimeZone($timeZone);
} catch (\Exception $ex) {
$this->timeZone = new DateTimeZone('UTC');
}
}
return $this->timeZone;
}