Учитывая string
в этом формате "HH:MM"
, например "03:55"
, это соответствует 3 часам и 55 минутам.
Я хочу преобразовать его в объект datetime.time
для упрощения манипуляций. Какой самый простой способ сделать это?
Учитывая string
в этом формате "HH:MM"
, например "03:55"
, это соответствует 3 часам и 55 минутам.
Я хочу преобразовать его в объект datetime.time
для упрощения манипуляций. Какой самый простой способ сделать это?
Используйте datetime.datetime.strptime()
и вызовите .time()
на результат:
>>> datetime.datetime.strptime('03:55', '%H:%M').time()
datetime.time(3, 55)
Первый аргумент .strptime()
— это строка для анализа, второй — ожидаемый формат.
Возможно, будущим читателям это будет менее понятно, но метод *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)
datetime.strptime()
.
- person viam0Zah; 03.01.2021