ホームページ > バックエンド開発 > Python チュートリアル > Pythonでdatetime.timeオブジェクトに秒を追加する方法は?

Pythonでdatetime.timeオブジェクトに秒を追加する方法は?

Linda Hamilton
リリース: 2024-10-31 10:26:17
オリジナル
300 人が閲覧しました

How to Add Seconds to a datetime.time Object in Python?

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート