92

たとえば、stringこの形式"HH:MM"の場合、これは3時間55分"03:55"を表します。

datetime.time操作しやすいようにオブジェクトに変換したい。それを行う最も簡単な方法は何でしょうか?

4

3 に答える 3

144

結果を使用datetime.datetime.strptime()して呼び出します。.time()

>>> datetime.datetime.strptime('03:55', '%H:%M').time()
datetime.time(3, 55)

の最初の引数.strptime()は解析する文字列で、2番目の引数は予想される形式です。

于 2013-01-12T17:09:22.290 に答える
15
>>> datetime.time(*map(int, '03:55'.split(':')))
datetime.time(3, 55)
于 2013-01-12T17:10:46.320 に答える
1

将来の読者にはおそらくわかりにくいかもしれませんが、この*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)
于 2021-02-09T09:20:59.957 に答える