Pythonで時刻の差分を計算する
Pythonである時刻とある時刻の差分を計算してみます。
目次
datetimeモジュールのdatetimeオブジェクトで時刻を表す
Pythonのdatetimeモジュールのdatetimeクラスを使って時刻を表します。このクラスのコンストラクタを使ってオブジェクトを生成します。
D = datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)
変数 |
内容 |
---|---|
year |
年 |
month |
月 |
day |
日 |
hour |
時。省略可。既定値は0。 |
minute |
分。省略可。既定値は0。 |
second |
秒。省略可。既定値は0。 |
microsecond |
マイクロ秒。省略可。既定値は0。 |
D |
datetimeオブジェクト |
ミリ秒は無いのですね。
時刻の差はtimedeltaオブジェクトで表す
2つのdatetimeオブジェクトを作ってその差を計算すると、結果はdatetimeモジュールのtimedeltaオブジェクトになります。 timedeltaオブジェクトは内部的にdays、seconds、microsecondsが保持されます。
実際に、datetimeオブジェクトを作って計算してみました。
コードはこんな感じ。
import datetime
d1 = datetime.datetime(year=2018, month=1, day=7, hour=12, minute=34, second=56, microsecond=1)
d2 = datetime.datetime(year=2019, month=2, day=8, hour=13, minute=35, second=57, microsecond=2)
delta = d2-d1
print(d1)
print(d2)
print(type(delta))
print(delta)
print(delta.days)
print(delta.seconds)
print(delta.microseconds)
計算結果をいろいろなパターンで表示してみるわけです。 で、出力はこうなります。
2018-01-07 12:34:56.000001
2019-02-08 13:35:57.000002
<class 'datetime.timedelta'>
397 days, 1:01:01.000001
397
3661
1
timedelta.daysは日の部分だけ、timedelta.secondsは秒の部分だけ、timedelta.microsecondsはマイクロ秒の部分だけが取り出されるようですね。
公開日
広告