一尘不染

在Python中将秒转换为hh:mm:ss

django

如何将int(秒数)转换为mm:ss或hh:mm:ss格式?

我需要使用Python代码(如果可能,请在Django模板中)执行此操作。


阅读 1502

收藏
2020-04-02

共1个答案

一尘不染

我不敢相信众多答案中的任何一个都可以提供我认为的“一种明显的方法”(而且我什至都不是荷兰人!秒(特别是86399秒):

>>> import time
>>> time.strftime('%H:%M:%S', time.gmtime(12345))
'03:25:45'

由于time过滤器支持时髦的时间格式语法(我相信是从PHP启发而来的),并且还需要datetime模块和时区实现(例如pytz)来准备数据,因此使用Django模板更为挑剔。例如:

>>> from django import template as tt
>>> import pytz
>>> import datetime
>>> tt.Template('{{ x|time:"H:i:s" }}').render(
...     tt.Context({'x': datetime.datetime.fromtimestamp(12345, pytz.utc)}))
u'03:25:45'

根据您的确切需求,在应用程序中为此格式化任务定义自定义过滤器可能会更方便。

2020-04-02