为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

素胚勾勒不出你 2019-07-02 16:58:24
将时间增量格式化为字符串我是Python新手(2周),我在格式化一个datetime.timedelta对象。下面是我要做的事情:我有一个对象列表,对象类的一个成员是一个TimeDelta对象,它显示一个事件的持续时间。我想以小时:分钟的格式显示这个持续时间。我尝试过各种各样的方法来做这件事,而且我遇到了困难。我的当前方法是为返回小时和分钟的对象向类添加方法。我可以通过将时差除以3600并将其舍入来得到时间。我很难把剩下的秒转换成分钟。顺便说一下,我在用Google AppEngine带着Django Templates以供介绍。
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

您只需使用str()将timeDelta转换为字符串即可。下面是一个例子:


import datetime

start = datetime.datetime(2009,2,10,14,00)

end   = datetime.datetime(2009,2,10,16,00)

delta = end-start

print(str(delta))

# prints 2:00:00


查看完整回答
反对 回复 2019-07-02
?
侃侃无极

TA贡献2051条经验 获得超10个赞

如您所知,您可以通过访问.seconds属性。


Python提供了内置函数divmod()它允许:


s = 13420

hours, 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 seconds

s = 13420

# hours

hours = s // 3600 

# remaining seconds

s = s - (hours * 3600)

# minutes

minutes = s // 60

# remaining seconds

seconds = s - (minutes * 60)

# total time

print '{:02}:{:02}:{:02}'.format(int(hours), int(minutes), int(seconds))

# result: 03:43:40


查看完整回答
反对 回复 2019-07-02
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

>>> 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部分一起放回一起。


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 478 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信