Python Datetime:将秒转换为小时/分钟/秒 - 但也将日期选项转换为小时?

发布于 2025-01-10 15:15:16 字数 357 浏览 0 评论 0原文

非常基本的问题。我正在使用一个从 JSON 解析秒的函数,并使用 Python 中的日期时间输出为小时/分钟/秒,如下所示:

str(datetime.timedelta(seconds=seconds here))

这输出如下所示:

Timestamp: 23:54:02.513000
Timestamp: 1 day, 0:01:07.827000

它工作完美,但我不希望日期时间打印“1 天” “,我只想要几个小时。因此,例如上面的第二个应该类似于 24:01:07.827000

我尝试使用自己的自定义函数来转换秒,但我觉得必须有一种更简单的方法。

Pretty basic question. I'm using a function that parses seconds from JSON and uses datetime in Python to output to hours/minutes/seconds, like so:

str(datetime.timedelta(seconds=seconds here))

This outputs something like so:

Timestamp: 23:54:02.513000
Timestamp: 1 day, 0:01:07.827000

It works perfectly, but I don't want datetime to print "1 day", I want hours only. So for example the second above should be something like 24:01:07.827000

I tried using my own custom function to convert the seconds, but I feel there must be an easier way.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

伴梦长久 2025-01-17 15:15:16

根据Python文档, https://docs.python.org/3 /library/datetime.html#timedelta-objects

内部仅存储天、秒和微秒。

因此,您必须使用天和秒自行计算小时和分钟。下面的代码使用 f 字符串。

import datetime

t = datetime.timedelta(seconds=60*60*24 + 11569) # A random number for testing

print(t) # 1 day, 3:12:49
print(f'{t.days * 24 + t.seconds // 3600:02}:{(t.seconds % 3600) // 60:02}:{t.seconds % 60:02}') # 27:12:49

According to Python Docs, https://docs.python.org/3/library/datetime.html#timedelta-objects

Only days, seconds and microseconds are stored internally.

So you have to compute the hours and minutes yourself using days and seconds. Below code uses f-strings.

import datetime

t = datetime.timedelta(seconds=60*60*24 + 11569) # A random number for testing

print(t) # 1 day, 3:12:49
print(f'{t.days * 24 + t.seconds // 3600:02}:{(t.seconds % 3600) // 60:02}:{t.seconds % 60:02}') # 27:12:49
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文