Как конвертировать дату из строкового формата в python - PullRequest
1 голос
/ 19 февраля 2020

у меня ниже таблица. Я хочу посчитать timedelta между первой и второй датой, второй и третьей и т. Д. В цикле for… Я действительно не хочу преобразовывать свои даты в таблице в целочисленное значение, установленное для использования функции timedelta (). Есть ли в python какая-либо функция, которая может преобразовывать str, например: «30 .06.2019» или 30/06/2019 на сегодняшний день? Идеально было бы преобразовать все вкладки [i] [2] в дату, а затем посчитать время между ними в al oop.

tab = [ [21091705,  0,'30.06.2019'],
        [21091705,  653777,'29.06.2019'],
        [21091705,  653842,'29.06.2019'],
        [21091705,  641701,'28.06.2019'],
        [21091705,  642000,'27.06.2019'],
        [21091705,  0,'25.06.2019'],
        [21091705,  642030,'25.06.2019'],
        [21091705,  642030,'25.06.2019'],
        [21091705,  637030,'25.06.2019'],
        [21091705,  0,'25.06.2019'],
        [21091705,  0,'17.05.2019'],
        [21091705,  0,'25.06.2019']
        ]

Ответы [ 3 ]

0 голосов
/ 19 февраля 2020

Вы пробовали функцию strptime(string, format) из модуля datetime? Поскольку все ваши строки в одном и том же формате даты, вы можете легко через них l oop

https://docs.python.org/3/library/datetime.html?highlight=strptime#datetime .datetime.strptime

0 голосов
/ 19 февраля 2020

Поскольку вы не хотите преобразовывать его в таблицу, вы можете использовать это:

import datetime
import numpy as np

dates = list(map(lambda x: datetime.datetime.strptime(x[2], '%d.%m.%Y'), tab))
list(np.diff(dates))

[datetime.timedelta(days=-1),
 datetime.timedelta(0),
 datetime.timedelta(days=-1),
 datetime.timedelta(days=-1),
 datetime.timedelta(days=-2),
 datetime.timedelta(0),
 datetime.timedelta(0),
 datetime.timedelta(0),
 datetime.timedelta(0),
 datetime.timedelta(days=-39),
 datetime.timedelta(days=39)]
0 голосов
/ 19 февраля 2020

Вы пробовали datetime.datetime.strptime ()?

Таким образом, вам понадобится время (например, 25.02.2019): datetime.datetime.strptime ('25 .02.2019 ','% d. % m.% Y ')

и он возвращает формат даты и времени. Если ваша дата имеет другой начальный формат, просто измените «% d.% M.% Y» на правильный формат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...