Как можно отсортировать или преобразовать время в относительном формате?

Как можно упорядочить относительное время, измеренное в прошлом, такое как "9 месяцев назад", "1 месяц назад", "33 минуты назад", "5 лет назад", "4 часа назад" и другие? Есть ли какая-то библиотека или способ преобразования таких строк для их последующей сортировки?
  • 27 марта 2024 г. 12:49
Ответы на вопрос 1
Для преобразования относительного времени в число или более удобный формат для сортировки можно воспользоваться библиотекой Python, называемой dateutil. Эта библиотека позволяет легко преобразовывать относительные строки времени в объекты datetime.

Пример использования dateutil для сортировки относительного времени:

```python
from dateutil.relativedelta import relativedelta
from dateutil.parser import parse
from datetime import datetime

# Пример списка относительного времени
relative_times = ["9 месяцев назад", "1 месяц назад", "33 минуты назад", "5 лет назад", "4 часа назад"]

# Функция для преобразования относительного времени в объект datetime
def convert_relative_time(relative_time):
    now = datetime.now()
    parsed_time = parse(relative_time)
    
    if "год" in relative_time:
        return now - relativedelta(years=parsed_time.year)
    elif "месяц" in relative_time:
        return now - relativedelta(months=parsed_time.month)
    elif "день" in relative_time:
        return now - relativedelta(days=parsed_time.day)
    elif "час" in relative_time:
        return now - relativedelta(hours=parsed_time.hour)
    elif "минута" in relative_time:
        return now - relativedelta(minutes=parsed_time.minute)

# Преобразование списка относительного времени в список объектов datetime
relative_times_sorted = sorted([convert_relative_time(time) for time in relative_times])

# Вывод отсортированного списка объектов datetime
for time in relative_times_sorted:
    print(time)
```

Этот код использует библиотеку dateutil для преобразования относительного времени в объекты datetime и затем сортирует их для последующего вывода. 

Таким образом, с помощью библиотеки dateutil можно легко преобразовывать и сортировать относительное время для удобства обработки данных.
Похожие вопросы