1. ホーム
  2. python

[解決済み] Pythonで秒をhh:mm:ssに変換する [重複] [重複

2023-02-15 05:48:26

質問

int(秒数)を以下のような形式に変換するには? mm:ss または hh:mm:ss ?

Pythonのコードで(可能ならDjangoのテンプレートでも)やりたいのですが。

どのように解決するのですか?

多くの回答のどれもが、私が "それを行う 1 つの明白な方法"(そして私はオランダ人でもない...!) -- 24 時間弱の秒数(具体的には 86399 秒)を示しているとは思えません。

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

Django テンプレートでこれを行うのは、もっと厄介です。 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'

あなたの正確なニーズによっては、アプリでこのフォーマットタスクのためのカスタムフィルタを定義する方が便利な場合があります。