我有变量有秒,我想转换为详细的时间格式.我此刻喜欢这个.
runTime = '%s Hours:Minutes:Seconds' % time.strftime("%H:%M:%S", time.gmtime(runTime))
Run Code Online (Sandbox Code Playgroud)
输出:
17:25:46 Hours:Minutes:Seconds
Run Code Online (Sandbox Code Playgroud)
我希望将其格式化为:
17 Hours 25 Minutes 46 Seconds
Run Code Online (Sandbox Code Playgroud)
最终,我希望能够缩短较小的值:
因此,如果值是分钟和秒,它会是这样的
15 Minutes 5 Seconds
Run Code Online (Sandbox Code Playgroud)
如果有超过24小时,那么几天
1 Days 15 Hours 5 Minutes 1 Seconds
Run Code Online (Sandbox Code Playgroud)
您应该使用优秀的dateutil包,然后您的任务变得微不足道:
>>> from dateutil.relativedelta import relativedelta as rd
>>> fmt = '{0.days} days {0.hours} hours {0.minutes} minutes {0.seconds} seconds'
>>> print(fmt.format(rd(seconds=62745)))
0 days 17 hours 25 minutes 45 seconds
Run Code Online (Sandbox Code Playgroud)
一些高级示例,仅显示非零的字段的值:
>>> intervals = ['days','hours','minutes','seconds']
>>> x = rd(seconds=12345)
>>> print(' '.join('{} {}'.format(getattr(x,k),k) for k in intervals if getattr(x,k)))
3 hours 25 minutes 45 seconds
>>> x = rd(seconds=1234432)
>>> print(' '.join('{} {}'.format(getattr(x,k),k) for k in intervals if getattr(x,k)))
14 days 6 hours 53 minutes 52 seconds
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1723 次 |
| 最近记录: |