Как преобразовать неформатированную строку в дату и время в python

#python #date #datetime

Вопрос:

Допустим, у меня есть строка из 10 цифр, первые 6 цифр которой являются датой, а последние 4 цифры-военным временем.

1504230001

Первые 2 цифры-год, следующие 2-месяц, следующие 2-день. Оставшиеся 4 цифры относятся к военному времени

Желаемый результат:

2015-04-23 00:01:00

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

1. что такое военное время? Кроме того, в чем конкретно заключается проблема?

2. Взгляните на strptime()

Ответ №1:

Как уже упоминалось в комментариях datetime.strptime() , это правильный путь:

 from datetime import datetime

time = 1504230001
time2 = datetime.strptime(str(time), '%y%m%d%H%M')

print(time2.strftime('%Y-%m-%d %H:%M:%S'))
 

Выход:

 2015-04-23 00:01:00
 

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

1. Спасибо! есть ли какая-либо причина для strftime(). я напечатал time2 напрямую, и это то же самое, что вызвать time2.strftime()

2. Да, это вывод на печать объекта datetime. Вы можете согласиться с этим, если хотите только распечатать выходные данные. Если вам нужно строковое представление объекта datetime, вы можете назначить его следующим образом: time_string = time2.strftime('%Y-%m-%d %H:%M:%S') .