python 实现时间转换 秒单位转换为时分秒表示

代码: 

"""
@author: zhangjun.xue
@time: 2020/5/25 17:46
@file: str_of_num.py
@desc: python实现 数值 转换为 万,亿单位,保留3位小数
"""
import traceback
from loguru import logger


def str_of_num(num):
    '''
    递归实现,精确为最大单位值 + 小数点后三位
    '''
    def strofsize(num, level):
        if level >= 2:
            return num, level
        elif num >= 10000:
            num /= 10000
            level += 1
            return strofsize(num, level)
        else:
            return num, level
    units = ['', '万', '亿']
    num, level = strofsize(num, 0)
    if level > len(units):
        level -= 1
    return '{}{}'.format(round(num, 3), units[level])


def seconds_to_hms(seconds_num):
    """
    输入秒数 转换为 时分秒输出
    param: seconds_num integer 666
    return: hms str 00:00:00
    """
    try:
        m, s = divmod(seconds_num, 60)
        h, m = divmod(m, 60)
        hms = "%02d:%02d:%02d" % (h, m, s)
        return hms
    except:
        logger.info(traceback.format_exc())
        return seconds_num


if __name__ == "__main__":

    num_list = [
        0, 1, 2, 10, 11, 100, 123,
        1000, 1234, 10000, 11923,
        5463443, 54634434, 97736213623,
        977362136234, 9773621362345, 97736213623456
    ]
    for num in num_list:
        str_num = str_of_num(num)
        logger.info(f"num = {num} | str_num = {str_num}")

    logger.info('-'*50, '\n')

    seconds_num_list = [
        10, 59, 60, 61, 71, 120, 121,
        3600, 3666, 3667, 7200, 7201, 7361,
        86400, 86460, 86461, 86466,
        666,
        0
    ]
    for seconds_num in seconds_num_list:
        hms = seconds_to_hms(seconds_num)
        logger.info(f"seconds_num = {seconds_num} | hms = {hms}")


输出:

2021-05-19 16:49:03.668 | INFO     | __main__:<module>:57 - num = 0 | str_num = 0
2021-05-19 16:49:03.669 | INFO     | __main__:<module>:57 - num = 1 | str_num = 1
2021-05-19 16:49:03.669 | INFO     | __main__:<module>:57 - num = 2 | str_num = 2
2021-05-19 16:49:03.669 | INFO     | __main__:<module>:57 - num = 10 | str_num = 10
2021-05-19 16:49:03.669 | INFO     | __main__:<module>:57 - num = 11 | str_num = 11
2021-05-19 16:49:03.669 | INFO     | __main__:<module>:57 - num = 100 | str_num = 100
2021-05-19 16:49:03.669 | INFO     | __main__:<module>:57 - num = 123 | str_num = 123
2021-05-19 16:49:03.669 | INFO     | __main__:<module>:57 - num = 1000 | str_num = 1000
2021-05-19 16:49:03.670 | INFO     | __main__:<module>:57 - num = 1234 | str_num = 1234
2021-05-19 16:49:03.670 | INFO     | __main__:<module>:57 - num = 10000 | str_num = 1.0万
2021-05-19 16:49:03.670 | INFO     | __main__:<module>:57 - num = 11923 | str_num = 1.192万
2021-05-19 16:49:03.670 | INFO     | __main__:<module>:57 - num = 5463443 | str_num = 546.344万
2021-05-19 16:49:03.670 | INFO     | __main__:<module>:57 - num = 54634434 | str_num = 5463.443万
2021-05-19 16:49:03.670 | INFO     | __main__:<module>:57 - num = 97736213623 | str_num = 977.362亿
2021-05-19 16:49:03.670 | INFO     | __main__:<module>:57 - num = 977362136234 | str_num = 9773.621亿
2021-05-19 16:49:03.670 | INFO     | __main__:<module>:57 - num = 9773621362345 | str_num = 97736.214亿
2021-05-19 16:49:03.670 | INFO     | __main__:<module>:57 - num = 97736213623456 | str_num = 977362.136亿
2021-05-19 16:49:03.671 | INFO     | __main__:<module>:76 - --------------------------------------------------
2021-05-19 16:49:03.671 | INFO     | __main__:<module>:87 - seconds_num = 10 | hms = 00:00:10
2021-05-19 16:49:03.671 | INFO     | __main__:<module>:87 - seconds_num = 59 | hms = 00:00:59
2021-05-19 16:49:03.671 | INFO     | __main__:<module>:87 - seconds_num = 60 | hms = 00:01:00
2021-05-19 16:49:03.671 | INFO     | __main__:<module>:87 - seconds_num = 61 | hms = 00:01:01
2021-05-19 16:49:03.671 | INFO     | __main__:<module>:87 - seconds_num = 71 | hms = 00:01:11
2021-05-19 16:49:03.671 | INFO     | __main__:<module>:87 - seconds_num = 120 | hms = 00:02:00
2021-05-19 16:49:03.671 | INFO     | __main__:<module>:87 - seconds_num = 121 | hms = 00:02:01
2021-05-19 16:49:03.671 | INFO     | __main__:<module>:87 - seconds_num = 3600 | hms = 01:00:00
2021-05-19 16:49:03.672 | INFO     | __main__:<module>:87 - seconds_num = 3666 | hms = 01:01:06
2021-05-19 16:49:03.672 | INFO     | __main__:<module>:87 - seconds_num = 3667 | hms = 01:01:07
2021-05-19 16:49:03.672 | INFO     | __main__:<module>:87 - seconds_num = 7200 | hms = 02:00:00
2021-05-19 16:49:03.672 | INFO     | __main__:<module>:87 - seconds_num = 7201 | hms = 02:00:01
2021-05-19 16:49:03.672 | INFO     | __main__:<module>:87 - seconds_num = 7361 | hms = 02:02:41
2021-05-19 16:49:03.672 | INFO     | __main__:<module>:87 - seconds_num = 86400 | hms = 24:00:00
2021-05-19 16:49:03.672 | INFO     | __main__:<module>:87 - seconds_num = 86460 | hms = 24:01:00
2021-05-19 16:49:03.672 | INFO     | __main__:<module>:87 - seconds_num = 86461 | hms = 24:01:01
2021-05-19 16:49:03.672 | INFO     | __main__:<module>:87 - seconds_num = 86466 | hms = 24:01:06
2021-05-19 16:49:03.672 | INFO     | __main__:<module>:87 - seconds_num = 666 | hms = 00:11:06
2021-05-19 16:49:03.673 | INFO     | __main__:<module>:87 - seconds_num = 0 | hms = 00:00:00

猜你喜欢

转载自blog.csdn.net/xuezhangjun0121/article/details/117035831