как преобразовать список строк в список даты и времени в python? - PullRequest
1 голос
/ 10 апреля 2020

У меня есть список строк, содержащий дату и время. Я хочу преобразовать его в список даты и времени.

lstDateTime = [datetime.strptime(x,'%Y-%m-%d %H:%M:%S.%f') for x in time]
print("lstDateTime:",lstDateTime)

Это дает абсурдный список как datetime.datetime (2017, 1, 1, 10, 12, 13), datetime.datetime (2017, 1, 1, 10, 12, 14) в то время как фактический список строк имеет вид: - '2017-01-01 16: 59: 25.000', '2017-01-01 16: 59: 26.000'

Ответы [ 3 ]

0 голосов
/ 10 апреля 2020

Вы печатаете список напрямую, что приводит к тому, что объекты не отображаются в виде отформатированных строк, как вы этого хотите. Вы можете использовать strftime(), чтобы получить желаемый результат. Если вы хотите использовать тот же формат, который вы использовали для преобразования строк в объекты даты и времени, вы можете использовать это:

lstDateTime = [datetime.strptime(x,'%Y-%m-%d %H:%M:%S.%f') for x in time]
lstDateTime = [x.strftime('%Y-%m-%d %H:%M:%S.%f') for x in lstDateTime]
print("lstDateTime:",lstDateTime)
0 голосов
/ 10 апреля 2020

Самый простой способ - использовать pandas, например, со следующими test_list в качестве строк:

import pandas as pd
dates = pd.to_datetime(list, format='%Y-%m-%d %H:%M:%S.%f')

Это вернет объект series. Если вам нужно это как список, конвертируйте его:

lstDateTime = date.to_list()
0 голосов
/ 10 апреля 2020

Попробуйте это:

lstDateTime = [str(datetime.strptime(x,'%Y-%m-%d %H:%M:%S.%f').isoformat(timespec='milliseconds')) for x in time]
print(f'lstDateTime: {", ".join(lstDateTime)}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...