public function sameValueAs(ValueObjectInterface $dateTimeWithTimeZone)
    {
        if (false === Util::classEquals($this, $dateTimeWithTimeZone)) {
            return false;
        }

        return $this->getDateTime()->sameValueAs($dateTimeWithTimeZone->getDateTime()) &&
            $this->getTimeZone()->sameValueAs($dateTimeWithTimeZone->getTimeZone());
    }