Python で datetime.time に秒を加算する
Python で datetime.time 値に整数の秒を加算することは、すぐには簡単ではありません。 timedelta または別の datetime.time オブジェクトを追加しようとすると、エラーが発生します。単純なアプローチ
次のような基本的な試み:<code class="python">datetime.time(11, 34, 59) + 3 datetime.time(11, 34, 59) + datetime.timedelta(0, 3) datetime.time(11, 34, 59) + datetime.time(0, 0, 3)</code>all型エラーで失敗します。
手動変換
解決策の 1 つは、datetime.time を秒に変換し、必要な秒を追加してから、datetime.time オブジェクトを再構築することです。<code class="python">def add_secs_to_time(timeval, secs_to_add): secs = timeval.hour * 3600 + timeval.minute * 60 + timeval.second secs += secs_to_add return datetime.time(secs // 3600, (secs % 3600) // 60, secs % 60)</code>
datetime.datetime の使用
より便利な方法は、完全な datetime.datetime オブジェクトを使用し、ダミーの日付に設定してから時刻を使用することです。 () メソッドを使用して時刻値のみを取得します。例:<code class="python">a = datetime.datetime(100, 1, 1, 11, 34, 59) b = a + datetime.timedelta(0, 3) print(a.time()) print(b.time())</code>結果:
11:34:59 11:35:02または、次のように使用できます:
<code class="python">b = a + datetime.timedelta(seconds=3)</code>
カスタム関数
カスタム関数が必要な場合は、addSecs メソッドを使用する関数を定義できます。<code class="python">import datetime def addSecs(tm, secs): fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second) fulldate = fulldate + datetime.timedelta(seconds=secs) return fulldate.time()</code>このメソッドは、datetime.time オブジェクトと、追加する秒数を表す整数を受け取り、変更時刻。
以上がPython で datetime.time オブジェクトに秒を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。