猿问

将时间增量格式化为字符串

将时间增量格式化为字符串

我是Python新手(2周),我在格式化一个datetime.timedelta对象。

下面是我要做的事情:我有一个对象列表,对象类的一个成员是一个TimeDelta对象,它显示一个事件的持续时间。我想以小时:分钟的格式显示这个持续时间。

我尝试过各种各样的方法来做这件事,而且我遇到了困难。我的当前方法是为返回小时和分钟的对象向类添加方法。我可以通过将时差除以3600并将其舍入来得到时间。我很难把剩下的秒转换成分钟。

顺便说一下,我在用Google AppEngine带着Django Templates以供介绍。


素胚勾勒不出你
浏览 479回答 3
3回答

一只甜甜圈

您只需使用str()将timeDelta转换为字符串即可。下面是一个例子:import datetimestart = datetime.datetime(2009,2,10,14,00)end   = datetime.datetime(2009,2,10,16,00)delta = end-startprint(str(delta))# prints 2:00:00

侃侃无极

如您所知,您可以通过访问.seconds属性。Python提供了内置函数divmod()它允许:s = 13420hours, remainder = divmod(s, 3600)minutes, seconds = divmod(remainder, 60)print '{:02}:{:02}:{:02}'.format(int(hours), int(minutes), int(seconds))# result: 03:43:40或者,您可以使用模块化和减法相结合的方法转换为小时和余数:# arbitrary number of secondss = 13420# hourshours = s // 3600 # remaining secondss = s - (hours * 3600)# minutesminutes = s // 60# remaining secondsseconds = s - (minutes * 60)# total timeprint '{:02}:{:02}:{:02}'.format(int(hours), int(minutes), int(seconds))# result: 03:43:40

开心每一天1111

>>> str(datetime.timedelta(hours=10.56))10:33:36>>> td = datetime.timedelta(hours=10.505)  # any timedelta object>>> ':'.join(str(td).split(':')[:2])10:30通过timedelta对象的str()函数调用相同的格式代码,只要我们简单地键入print td..由于不需要秒,我们可以用冒号(3部分)将字符串拆分,并将其与前2部分一起放回一起。
随时随地看视频慕课网APP

相关分类

Python
我要回答