datetime.datetime.strptime()
関数を使用した方がはるかに良いでしょう。次に、2つの結果を減算します。
import datetime
date1, time1 = '2012-09-08', '12:23:33'
date2, time2 = '2012-09-08', '12:23:33'
dt1 = datetime.datetime.strptime(date1 + ' ' + time1, "%Y-%m-%d %H:%M:%S")
dt2 = datetime.datetime.strptime(date2 + ' ' + time2, "%Y-%m-%d %H:%M:%S")
print (dt1 - dt2).total_seconds()
残りは秒単位で表示されることに注意してください。属性もありdatetime.timedelta.seconds
ます。代わりに使用すると、はるかに便利で、値を考慮する必要がなくなります。.days
.total_seconds()
.days
datetime.datetime.strptime()
メソッドとメソッドを使用するtimedelta
と、作業の大部分がCコードで維持され、より高速になるはずです。
解析ステップのため、どちらの方法も非常に高速ではないことに注意してください。時間テスト:
>>> import timeit
>>> def parse_datetime():
... date1, time1 = '2012-09-08', '12:23:33'
... date2, time2 = '2012-09-08', '12:23:33'
... dt1 = datetime.datetime.strptime(date1 + ' ' + time1, "%Y-%m-%d %H:%M:%S")
... dt2 = datetime.datetime.strptime(date2 + ' ' + time2, "%Y-%m-%d %H:%M:%S")
... (dt1 - dt2).total_seconds()
...
>>> def parse_time():
... d1 = time.strptime(date1 + ' ' + time1, "%Y-%m-%d %H:%M:%S")
... d2 = time.strptime(date2 + ' ' + time2, "%Y-%m-%d %H:%M:%S")
... seconds1 = time.mktime(d1)
... seconds2 = time.mktime(d2)
... seconds1 - seconds2
...
>>> timeit.timeit('test()', 'from __main__ import parse_datetime as test', number=10000)
0.6590030193328857
>>> timeit.timeit('test()', 'from __main__ import parse_time as test', number=10000)
0.7742340564727783
ここで、2番目のメソッドはtime.strptime()
関数(タイムタプルを直接出力する)を使用します。
しかし、私が知っている日時文字列を解析するためのより速い方法はありません。