Python: конвертировать формат даты и времени в другой - PullRequest
0 голосов
/ 15 апреля 2019

Так что у меня есть такой формат F:

'%Y-%m-%d %H:%M:%S.%f'

date_time = datetime.now()

Ouput

'2019-04-15 07:52:14.211697'

И я хочу изменить это в этот формат: '%Y-%m-%d %H:%M:%S,%f'

Вот что я попробовал:

time = datetime.strptime(str(date_time), '%Y-%m-%d %H:%M:%S,%f')

А это error:

ValueError: данные времени '2019-04-15 07: 52: 14.211697' не совпадают формат '% Y-% m-% d% H:% M:% S,% f'

Редактировать

Итак, у меня есть это string:

    maches = regex.findall(
        '[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1]) (?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9],[0-9][0-9][0-9]',
        line)

match[0] = '2019-03-13 17:35:35,855'

И я хочу преобразовать его в Datetime:

time = datetime.strptime(maches[0], '%Y-%m-%d %H:%M:%S,%f')

И это вернуло еще format:

2019-03-13 17:35:35.855000

Почему?

Ответы [ 3 ]

2 голосов
/ 15 апреля 2019

Вы хотите использовать strftime:

str_time = datetime.strftime(date_time, '%Y-%m-%d %H:%M:%S,%f')

Быстрое сравнение strftime и strptime :

strftime ()используется для преобразования объекта datetime в строку

strptime () используется для преобразования строки даты в объект datetime

Также в документации есть хороший ресурс, описывающий различия: strftime () и strptime () Поведение

Ответ на вопрос Edit

В ответ на ваше изменение strptime берет строковую дату и преобразует еев объект даты и времени.Формат, который вы передаете ему, просто говорит ему, как анализировать строку в datetime. не определяет формат печати.В этом случае вы вызываете print для объекта datetime, поэтому вывод определяется методом __str__ объекта datetime.

Если вы хотите напечатать его определенным образом, передайте его в strftime в формате, который вы хотите вывести как:

obj_time = datetime.strptime(maches[0], '%Y-%m-%d %H:%M:%S,%f')
print(datetime.strftime(obj_time , '%Y-%m-%d %H:%M:%S,%f'))
1 голос
/ 15 апреля 2019

Использовать strftime.

date_time = datetime.now()
print(date_time)
print(datetime.strftime(date_time, '%Y-%m-%d %H:%M:%S,%f'))

2019-04-15 10:26:08.637630
2019-04-15 10:26:08,637630
0 голосов
/ 15 апреля 2019

Используйте это, вы получите этот формат '% Y-% m-% d% H:% M:% S,% f'

print '{:%Y-%m-%d %H:%M:%S.%f}'.format(date_time)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...