Есть ли способ извлечь время из объектов datetime в Python?

#python

#python

Вопрос:

Я хочу извлечь значения времени из объекта datetime в Python. Это код, который я использовал:

 t = '2018-12-16 17:59:00'
t.strftime('%H:%M:%S')
  

С кодом явно что-то не так, потому что я получаю эту ошибку:

 AttributeError: 'str' object has no attribute 'strftime'
  

Я использую Python 3, и мне нужно преобразовать около 30000 значений datetime.

Комментарии:

1. Это в основном потому, что вы используете строку, а не datetime объект. И, кстати, вы извлекаете время, а не дату, как написано в заголовке.

Ответ №1:

 from datetime import datetime as dt
t = '2018-12-16 17:59:00'
t = dt.strptime(t, '%Y-%m-%d %H:%M:%S')
print(t.strftime('%H:%M:%S'))
  

в методах datetime

strptime — это способ преобразования строки в datetime

strftime — это метод преобразования datetime в string

Ответ №2:

Это строка, а не объект datetime. Вероятно, вам следует использовать объект datetime:

 t = datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
  

Но если вы хотите использовать свою строку, вы можете разделить ее на две части (разделенные пробелом):

 t = t.split()  # t = ['2018-12-16', '17:59:00']
  

Затем переходим к первой части:

 date = t[0]