Python时间转换:X秒 --> 时:分:秒

说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除

作者:zhu6201976

一、需求

时间转换: X秒 --> 时:分:秒

输入:90秒 --> 00:01:30

输入:3661秒 --> 01:01:01

二、实现思路

1.直接计算(浮点数存在计算误差): 

小时 = int( 总秒数 / 3600 )

分钟 = int( ( 总秒数 - 小时 * 3600 )  / 60 )

秒数 = 总秒数 - 小时 * 3600 - 分钟 * 60

2.利用Python内置库 time模块(100%精确 推荐)

三、代码实现

1.直接计算

import math


def deal_duration(duration: int) -> str:
    """
    处理时长 example: 90 --> 00:01:30
    TODO 浮点数存在计算误差
    :param duration: int 时长 单位s
    :return: str '00:01:30'
    """
    hour = 3600
    minute = 60

    h_rest, h = math.modf(duration / hour)
    h = '%02d' % int(h)

    m_rest, m = math.modf(round(h_rest * minute, 6))
    m = '%02d' % int(m)

    s_rest, s = math.modf(m_rest * minute)
    s = '%02d' % int(s)

    ret = f'{h}:{m}:{s}'

    return ret


ret = deal_duration(3661)
print(ret)

2.利用Python内置库 time模块

import time


def deal_duration(duration: int) -> str:
    """
    处理时长 example: 90 --> 00:01:30
    :param duration: int 时长 单位s
    :return: str '00:01:30'
    """
    return time.strftime('%H:%M:%S', time.gmtime(duration))


ret = deal_duration(3661)
print(ret)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值