Python で datetime.time に秒を追加する
開発者は、Python で時間値を操作する必要に遭遇することがよくあります。さまざまな datetime コンポーネントのうち、datetime.time は日付コンポーネントなしで時刻を表します。 datetime.time オブジェクトに整数の秒数を追加するには、標準的で効率的なメソッドが必要です。
従来のアプローチ
整数を datetime.time オブジェクトに直接追加する試みdatetime.time 値を使用するか、timedelta を時刻オブジェクトとともに使用すると、型エラーが発生します。 add_secs_to_time() のようなカスタム関数は、この問題に対処するために開発されました。
効率的な解決策
ただし、より洗練された Python の解決策が存在します。 datetime.time オブジェクトをダミーの日付を持つ完全な datetime インスタンスに変換すると、timedelta を利用して秒を追加できます。例:
<code class="python">import datetime timeval = datetime.time(11, 34, 59) secs_to_add = 3 dt = datetime.datetime(100, 1, 1, timeval.hour, timeval.minute, timeval.second) # Dummy date dt += datetime.timedelta(seconds=secs_to_add) result_time = dt.time()</code>
このアプローチでは、予想される結果、11:35:02 が生成されます。元の時間情報を保持しながら秒を正確に増分します。
ヘルパー関数
便宜上、addSecs という再利用可能な関数を作成できます:
<code class="python">def addSecs(tm, secs): fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second) fulldate += datetime.timedelta(seconds=secs) return fulldate.time()</code>
この関数を使用すると、datetime.time 値を簡単に操作できます。
<code class="python">a = datetime.datetime.now().time() b = addSecs(a, 300)</code>
以上がPythonでdatetime.timeオブジェクトに秒を追加する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。