Pythonのtimedelta
は、datetime
モジュールの一部で、2つの日付や時間の間の差を表すことができます。この記事では、timedelta
オブジェクトを文字列としてフォーマットする方法について説明します。
timedeltaを文字列に変換する
timedelta
オブジェクトを文字列に変換する最も簡単な方法は、str()
関数を使用することです。以下に例を示します。
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
このコードでは、start
とend
の間の時間差(delta
)を計算し、その結果を文字列として出力しています。
timedeltaを特定の形式でフォーマットする
timedelta
オブジェクトを特定の形式で表示する必要がある場合、より詳細なフォーマットを行うことができます。以下に例を示します。
def format_timedelta(td):
minutes, seconds = divmod(td.seconds + td.days * 86400, 60)
hours, minutes = divmod(minutes, 60)
return '{:d}:{:02d}:{:02d}'.format(hours, minutes, seconds)
td = datetime.timedelta(hours=5, minutes=30, seconds=20)
print(format_timedelta(td)) # prints 5:30:20
このコードでは、format_timedelta
関数を定義しています。この関数は、timedelta
オブジェクトを受け取り、時間、分、秒をhours:minutes:seconds
の形式でフォーマットした文字列を返します。
以上がPythonのtimedelta
をフォーマットする基本的な方法です。これらのテクニックを使って、timedelta
オブジェクトを任意の形式の文字列に変換することができます。