ホームページ  >  記事  >  バックエンド開発  >  Python で datetime.time オブジェクトに秒を追加するにはどうすればよいですか?

Python で datetime.time オブジェクトに秒を追加するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-04 03:07:29659ブラウズ

How can I add seconds to a datetime.time object in Python?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。