繁体   English   中英

如何在python 2.7中使用time.strftime()从000开始一天?

[英]How do I begin day at 000 using time.strftime() in python 2.7?

我正在做一个计算,返回总秒数。 然后我使用python time.strftime()将其转换为几天,几小时,几分钟,几秒钟

total_time = time.strftime("%-j days, %-H hours, %-M minutes, %-S seconds,", time.gmtime(total_seconds))

但是,使用%-j始于001,所以我的计算总是在1天之前结束。 有没有办法在000上启动%-j? 有一个更好的方法吗? 谢谢!

从总秒数中获取天,小时,分钟和秒似乎是一种极其复杂的方法。 您可以使用除法:

def secs_to_days(seconds):
    minutes, seconds = divmod(seconds, 60)
    hours, minutes = divmod(minutes, 60)
    days, hours = divmod(hours, 24)
    return (days, hours, minutes, seconds)

total_time = ("{:03} days, {:02} hours, {:02} minutes, "
              "{:02} seconds,").format(*secs_to_days(total_seconds))

要处理这些内容的复数形式(001天而不是001天),您可以修改助手功能来做到这一点。

def secs_to_days(seconds):
    minutes, seconds = divmod(seconds, 60)
    hours, minutes = divmod(minutes, 60)
    days, hours = divmod(hours, 24)

    seconds = "{:02} second{}".format(seconds, "" if seconds == 1 else "s")
    minutes = "{:02} minute{}".format(minutes, "" if minutes == 1 else "s")
    hours = "{:02} hour{}".format(hours, "" if hours == 1 else "s")
    days = "{:03} day{}".format(days, "" if days == 1 else "s")

    return (days, hours, minutes, seconds)

total_time = ", ".join(secs_to_days(seconds))

如果您经常处理复数形式,请参阅一般情况下的复数字符串格式设置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM