Phi*_*lex 0 python format time datetime timedelta
在Python中有一种简单的方法来格式化时间(delta),如下所示:
10:11:12 -> 10:11:12
09:10:11 -> 9:10:11
00:10:11 -> 10:11
00:09:10 -> 9:10
00:00:10 -> 10 (or maybe as 0:10)
00:00:09 -> 9 (or maybe as 0:09)
Run Code Online (Sandbox Code Playgroud)
即抑制前导零和分隔符(但可能不是在时间增量<1分钟时)
如果你有字符串,你可以lstrip任何前导冒号或0:
In [3]: "00:00:10".lstrip("0:")
Out[3]: '10'
In [4]: "09:10:11".lstrip("0:")
Out[4]: '9:10:11'
In [5]: "10:10:11".lstrip("0:")
Out[5]: '10:10:11'
Run Code Online (Sandbox Code Playgroud)
只要我们有一个0或者,只有当我们找到除了两个字符之外的任何东西时才停止.你可能想要抓住的一个案例是"00:00:00".在那种情况下,我不知道你的期望.
如果你想也右对齐,可以rjust结果:
In [18]: "00:00:19".lstrip("0:").rjust(8)
Out[18]: ' 19'
In [19]: "10:00:19".lstrip("0:").rjust(8)
Out[19]: '10:00:19'
In [20]: "09:00:19".lstrip("0:").rjust(8)
Out[20]: ' 9:00:19'
Run Code Online (Sandbox Code Playgroud)
使用str.format作为@ C.LECLERC评论.
"{:>8}".format("00:10:11".lstrip("0:"))
Run Code Online (Sandbox Code Playgroud)
如果你不进入几天,你只需要在timedeltas上调用str:
In [6]: from datetime import timedelta
...:
...: td1,td2,td3 = timedelta(hours=10, minutes=10), timedelta(seconds=10),tim
...: edelta(minutes=9, seconds=10)
...: for t in (td1, td2, td3):
...: print(str(t))
...: print(str(t).lstrip("0:"))
...:
10:10:00
10:10:00
0:00:10
10
0:09:10
9:10
Run Code Online (Sandbox Code Playgroud)
如果要设置最小时间段,即> = 1分钟:
from datetime import timedelta
mn = timedelta(minutes=1)
td1,td2,td3 = timedelta(hours=10, minutes=10), timedelta(seconds=10),timedelta(minutes=9, seconds=10)
for t in (td1, td2, td3):
if t >= mn:
print(str(t).lstrip("0:"))
else:
print(str(t))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
539 次 |
| 最近记录: |