当前位置: 首页 > 面试题库 >

Python格式的timedelta大于24小时,仅显示小时?

屠浩
2023-03-14
问题内容

我如何格式化大于24小时的timedelta以在Python中仅包含小时显示?

>>> import datetime
>>> td = datetime.timedelta(hours=36, minutes=10, seconds=10)
>>> str(td)
'1 day, 12:10:10'

# my expected result is:
'36:10:10'

我通过以下方式达到目标:

import datetime

td = datetime.timedelta(hours=36, minutes=10, seconds=10)
seconds = td.total_seconds()
hours = seconds // 3600
minutes = (seconds % 3600) // 60
seconds = seconds % 60

str = '{}:{}:{}'.format(int(hours), int(minutes), int(seconds))

>>> print(str)
36:10:10

有没有更好的办法?


问题答案:

可能定义继承的类datetime.timedelta会更加优雅

class mytimedelta(datetime.timedelta):
   def __str__(self):
      seconds = self.total_seconds()
         hours = seconds // 3600
         minutes = (seconds % 3600) // 60
         seconds = seconds % 60
         str = '{}:{}:{}'.format(int(hours), int(minutes), int(seconds))
         return (str)

td = mytimedelta(hours=36, minutes=10, seconds=10)

>>> str(td)
prints '36:10:10'


 类似资料:
  • 问题内容: 在我的应用程序中,我想将给定的CDT格式的24小时字符串转换为CDT格式的12小时的字符串,如何将给定的24小时格式的字符串转换为12小时的格式的字符串? 问题答案: 您可以尝试使用对象转换时间格式。 这是SimpleDateFromat 的javadoc 链接。

  • 问题内容: sql server 2000表之一中具有以下格式的日期值 如何将上述格式的数据值转换为24小时日期格式,如下所示 问题答案: 试试这个: 首先将日期转换为,然后您可以按以下方式进行操作:

  • 问题内容: 我已经忙了好几个小时了,但是我无法正常工作。 时差为25(小时)。但是我得到的输出是1(天)。 如何获得25小时的输出? 问题答案: 关于使用TIMESTAMPDIFF呢?

  • 我有一个发布的应用程序在Android N上启动时崩溃,因为新引入的

  • 问题内容: 我从服务器获得的时间就像 。 我想将其转换为。 我还希望转换后的时间为24小时格式。任何人都可以解决这个问题。我想得到的输出就像 问题答案: 试试这个:

  • 我有一个GMT时间格式,我通过使用以下方式将其更改为我的本地浏览器时间: 输出为: 现在我想在中将12小时格式更改为24小时格式 示例: 有什么建议吗? 谢谢