単純な文字列からタイムデルタオブジェクトを構築する方法 質問する

単純な文字列からタイムデルタオブジェクトを構築する方法 質問する

文字列を に解析する必要がある関数を作成していますtimedelta。ユーザーは"32m"または"2h32m"、あるいは"4:13"または のようなものを入力する必要があります"5hr34m56s"... このようなものがすでに実装されているライブラリなどはありますか?

ベストアンサー1

私にとって最もエレガントな解決策は、外部ライブラリに頼る必要がないことです。日付ユーティリティまたは手動で入力を解析する方法は、日付時刻の強力なstrptime文字列解析方法。

from datetime import datetime, timedelta
# we specify the input and the format...
t = datetime.strptime("05:20:25","%H:%M:%S")
# ...and use datetime's hour, min and sec properties to build a timedelta
delta = timedelta(hours=t.hour, minutes=t.minute, seconds=t.second)

この後、timedelta オブジェクトを通常どおり使用し、秒に変換して、正しい処理が行われたかどうかなどを確認できます。

print(delta)
assert(5*60*60+20*60+25 == delta.total_seconds())

おすすめ記事