Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python入門】秒を「時:分:秒」形式に変換する3つの方法

はじめに

この記事では、「与えられた秒数を時・分・秒の形式に変換する」という問題に対する解決策を、3つの異なるアプローチとともに分かりやすく解説します。プログラムで経過時間やタイマーを扱う際によく使われる処理なので、ぜひ参考にしてください。

アプローチ1: 算術演算による力任せの方法(ブルートフォース)

剰余演算子(%)と整数除算演算子(//)を組み合わせることで、24時間以内の秒数から時・分・秒をそれぞれ求めることができます。ロジックがシンプルで、標準モジュールに依存しないのが特徴です。

コード例

def convert(seconds):
    seconds = seconds % (24 * 3600)
    hour = seconds // 3600
    seconds %= 3600
    minutes = seconds // 60
    seconds %= 60
    return "%02d:%02d:%02d" % (hour, minutes, seconds)  # フォーマットして返す

n = 23451
print(convert(n))

実行結果

06:30:51

%02d を使うことで、各値が必ず2桁で表示され、見やすい出力になります。

アプローチ2: datetimeモジュールを利用する方法

Pythonの標準ライブラリである datetime モジュールには、時間差を表す timedelta クラスが用意されています。これを活用すれば、わずか数行で変換処理を実装でき、コードも非常に読みやすくなります。

コード例

# datetimeモジュールを使用
import datetime

def convert(n):
    return str(datetime.timedelta(seconds=n))

n = 23451
print(convert(n))

実行結果

6:30:51

なお、この方法の出力は先頭のゼロが省略されるため、6:30:51 のように表示される点に注意してください。

アプローチ3: timeモジュールを利用する方法

time モジュールの gmtime() 関数と strftime() 関数を組み合わせると、指定したフォーマットの時間文字列を簡単に生成できます。

コード例

# timeモジュールを使用
import time

def convert(seconds):
    return time.strftime("%H:%M:%S", time.gmtime(seconds))

n = 23451
print(convert(n))

実行結果

06:30:51

gmtime() はエポック(1970年1月1日)からの秒数を時間構造体に変換する関数です。フォーマット指定子 %H:%M:%S により、時・分・秒を2桁ずつ整形した文字列が得られます。

まとめ

この記事では、Pythonで秒数を時・分・秒に変換する3つの方法を紹介しました。

  • 算術演算による方法: ロジックを自分で制御でき、依存モジュールなしで実装可能
  • datetimeモジュール: コードが最もシンプルで可読性が高い
  • timeモジュール: フォーマット指定が柔軟で、2桁固定の出力が得られる

用途や好みに応じて最適な方法を選択し、日々の開発に役立ててください。

  1. Pythonでキロメートルをマイルに変換する方法|初心者向けサンプルコード付き解説

    本記事では、Pythonを使って「キロメートル(km)」を「マイル(mile)」に変換するプログラムの作成方法を、初心者にもわかりやすく解説します。課題の概要今回扱う問題は次のとおりです。問題文: キロメートル単位で与えられた距離を、マイル単位に変換して出力する。変換には以下の換算式を使用します。1キロメートル = 0.621371 マイル使用する変換公式Miles = kilometer * 0.621371つまり、キロメートルの値に定数「0.621371」を掛けるだけで、マイルへの換算が可能です。それでは、実際のコードを見てみましょう。実装例kilometers = 5.5 # 換算係数:

  2. Pythonで文字のリストを文字列に変換する方法を解説

    Pythonでは、リスト内の個々の要素をひとつの文字列にまとめたい場面がよくあります。たとえば、データを保存したり送信したりする際に必要となるシリアライズ(直列化)の処理では、このような変換が非常に役立ちます。具体的には、次のような変換を指します。[h, e, l, l, o, , w, o, r, l, d] → hello worldjoinメソッドを使った変換Pythonには、このような変換を実現するためのjoin()メソッドが標準で用意されています。joinメソッドは、区切り文字(デリミタ)として使う文字列に対して呼び出し、引数に渡したリストの各要素を連結します。今回は各文字をつなげ