r"""
        Args:
            lbl (str):
            invert_rate (bool):
            backspace (bool):

        Returns:
            str: msg_fmtstr_time

        CommandLine:
            python -m utool.util_progress --exec-ProgressIter.build_msg_fmtstr2

        Setup:
            >>> from utool.util_progress import *  # NOQA
            >>> lbl = 'foo'
            >>> invert_rate = True
            >>> backspace = False
            >>> length = None

        Example:
            >>> # DISABLE_DOCTEST
            >>> msg_fmtstr_time = ProgressIter.build_msg_fmtstr2(lbl, length, invert_rate, backspace)
            >>> result = ('%s' % (ut.repr2(msg_fmtstr_time),))
            >>> print(result)

def build_msg_fmtstr2(lbl, length, invert_rate, backspace):
        r"""
        Args:
            lbl (str):
            invert_rate (bool):
            backspace (bool):

        Returns:
            str: msg_fmtstr_time

        CommandLine:
            python -m utool.util_progress --exec-ProgressIter.build_msg_fmtstr2

        Setup:
            >>> from utool.util_progress import *  # NOQA
            >>> lbl = 'foo'
            >>> invert_rate = True
            >>> backspace = False
            >>> length = None

        Example:
            >>> # DISABLE_DOCTEST
            >>> msg_fmtstr_time = ProgressIter.build_msg_fmtstr2(lbl, length, invert_rate, backspace)
            >>> result = ('%s' % (ut.repr2(msg_fmtstr_time),))
            >>> print(result)
        """
        with_wall = True
        tzname = time.tzname[0]
        if util_cplat.WIN32:
            tzname = tzname.replace('Eastern Standard Time', 'EST')
        # ansii/vt100 code for clearline
        # CLEARLINE_L2 = '\33[2K'
        # BEFORE_PROG = '\r\033[?25l'

        CLEARLINE_EL0 = '\33[0K'  # clear line to right
        # CLEARLINE_EL1 = '\33[1K'  # clear line to left
        CLEARLINE_EL2 = '\33[2K'  # clear line
        # DECTCEM_HIDE = '\033[?25l'  # hide cursor

        CLEAR_BEFORE = '\r' + CLEARLINE_EL2  # + DECTCEM_HIDE
        # FIXME: hideing cursor persists if the program crashes
        CLEAR_AFTER = CLEARLINE_EL0

        msg_head = ProgressIter.build_msg_fmtstr_head_cols(length, lbl)
        if backspace:
            msg_head = [CLEAR_BEFORE] + msg_head

        msg_tail = [
            (
                'rate={rate:4.2f} sec/iter, '
                if invert_rate else
                'rate={rate:4.2f} Hz,'
            ),
            (
                ''
                if length == 0 else
                ' etr={etr},'
            ),
            ' ellapsed={ellapsed},',
            (
                ' wall={wall} ' + tzname
                if with_wall
                else ''
            ),
            # backslash-r is a carrage return and undoes all previous output on
            # a written line
            (' {extra}'),
            CLEAR_AFTER if backspace else '\n',
        ]
        msg_fmtstr_time = ''.join((msg_head + msg_tail))
        return msg_fmtstr_time