Pythonで時刻を表す任意フォーマットの文字列をパースしてその差を計算するサンプルコード。
次のような時刻タイムスタンプ付きの1行を浮動小数点型の秒数に変換する。
20220214-222512-332435142 This is extra sentence.
フォーマットは%Y%m%d-%H%M%S-%N
となっている。最後はナノ秒を表しており特定のLinuxにおけるdataコマンドに由来している。1/1000倍すればマイクロ秒、さらに1/1000倍すればミリ秒となる。
import re
from datetime import datetime
sentence = "20220214-222512-332435142 This is extra sentence."
timestamp = re.match(r'^(\d{8}-\d{6})-(\d{9})', sentence)
if timestamp:
seconds = datetime.strptime(timestamp.group(1), "%Y%m%d-%H%M%S").timestamp()
seconds += float(timestamp.group(2))*1e-9
print(seconds)
結果は次のようになる。
1644845112.3324351
あとは引き算するなり煮るなり焼くなりすればよいだろう。
datetime.strptime("20220214-222412", "%Y%m%d-%H%M%S").timestamp()
などとすれば特定時刻との前後関係の比較も容易!