Относительная дата по-русски в Python и Django

Под “относительной датой” я подразумеваю вывод даты следующим образом: 5 минут назад, вчера, 7 дней назад, завтра и т.д. (Не уверен, что это правильный термин, но ничего лучше в голову не приходит).

В Django для этого есть функция timesince, однако она не умеет склонять  по-русски единицы измерения времени. Например, она может выдать “4 дней, 15 часов назад”. Поэтому для вывода относительной даты на русском я использую функцию distance_of_time_in_words из библиотеки Pytils, написанной программистом Юрием Юревичем.

Установка:

pip install pytils

Пример использования:

import time
from pytils import dt

past = time.time() - 172800

print dt.distance_of_time_in_words(past)
#-> позавчера

Tz-aware использование в Django:

import datetime
from pytils import dt
from django.utils.timezone import utc

now = datetime.datetime.utcnow().replace(tzinfo=utc)
dt.distance_of_time_in_words(some_date, 1, now)

PS: Не забудьте “лайкнуть” библиотеку на GitHub.

This entry was posted in Programming, Посты на русском and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *