将字符串转换为datetime.time对象

时间:2013-01-12 17:06:45

标签: python time python-datetime

鉴于string格式为"HH:MM",例如"03:55",代表 3小时55分钟

我想将其转换为datetime.time对象以便于操作。最简单的方法是什么?

3 个答案:

答案 0 :(得分:99)

使用datetime.datetime.strptime()并在结果上调用.time()

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

.strptime()的第一个参数是要解析的字符串,第二个是预期的格式。

答案 1 :(得分:14)

>>> datetime.time(*map(int, '03:55'.split(':')))
datetime.time(3, 55)

答案 2 :(得分:0)

未来的读者可能不太清楚,但 *map 方法的速度要快 10 倍以上。请参阅下文并在您的代码中做出明智的决定。如果多次调用此检查并且速度很重要,请使用生成器(“map”)。

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)