たとえば、string
この形式"HH:MM"
の場合、これは3時間55分"03:55"
を表します。
datetime.time
操作しやすいようにオブジェクトに変換したい。それを行う最も簡単な方法は何でしょうか?
たとえば、string
この形式"HH:MM"
の場合、これは3時間55分"03:55"
を表します。
datetime.time
操作しやすいようにオブジェクトに変換したい。それを行う最も簡単な方法は何でしょうか?
結果を使用datetime.datetime.strptime()
して呼び出します。.time()
>>> datetime.datetime.strptime('03:55', '%H:%M').time()
datetime.time(3, 55)
の最初の引数.strptime()
は解析する文字列で、2番目の引数は予想される形式です。
>>> datetime.time(*map(int, '03:55'.split(':')))
datetime.time(3, 55)
将来の読者にはおそらくわかりにくいかもしれませんが、この*map
方法は10倍以上高速です。以下を参照して、コードで十分な情報に基づいた決定を行ってください。このチェックを何度も呼び出して速度が重要な場合は、ジェネレーター(「マップ」)を使用してください。
In [31]: timeit(datetime.strptime('15:00', '%H:%M').time())
7.76 µs ± 111 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
In [28]: timeit(dtime(*map(int, SHUTDOWN_AT.split(':'))))
696 ns ± 11.5 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)