Compares the given timezone name with the system timezone name.
    Checks the hash sum between the given timezone, and the one set in
    /etc/localtime. Returns True if names and hash sums match, and False if not.
    Mostly useful for running state checks.

    .. versionchanged:: 2016.3.0

    .. note::

        On Solaris-link operating systems only a string comparison is done.

    .. versionchanged:: 2016.11.4

    .. note::

        On AIX operating systems only a string comparison is done.

    CLI Example:

    .. code-block:: bash

        salt '*' timezone.zone_compare 'America/Denver'

def zone_compare(timezone):
    '''
    Compares the given timezone name with the system timezone name.
    Checks the hash sum between the given timezone, and the one set in
    /etc/localtime. Returns True if names and hash sums match, and False if not.
    Mostly useful for running state checks.

    .. versionchanged:: 2016.3.0

    .. note::

        On Solaris-link operating systems only a string comparison is done.

    .. versionchanged:: 2016.11.4

    .. note::

        On AIX operating systems only a string comparison is done.

    CLI Example:

    .. code-block:: bash

        salt '*' timezone.zone_compare 'America/Denver'
    '''
    if 'Solaris' in __grains__['os_family'] or 'AIX' in __grains__['os_family']:
        return timezone == get_zone()

    if 'FreeBSD' in __grains__['os_family']:
        if not os.path.isfile(_get_localtime_path()):
            return timezone == get_zone()

    tzfile = _get_localtime_path()
    zonepath = _get_zone_file(timezone)
    try:
        return filecmp.cmp(tzfile, zonepath, shallow=False)
    except OSError as exc:
        problematic_file = exc.filename
        if problematic_file == zonepath:
            raise SaltInvocationError(
                'Can\'t find a local timezone "{0}"'.format(timezone))
        elif problematic_file == tzfile:
            raise CommandExecutionError(
                'Failed to read {0} to determine current timezone: {1}'
                .format(tzfile, exc.strerror))
        raise