# pytils demo

## pytils.dt

### pytils.dt.distance_of_time_in_words

Например, тест прошлого времени был ${pytils.dt.distance_of_time_in_words(otime)}. Если более точно, то ${pytils.dt.distance_of_time_in_words(otime, 2)}. Нужно еще более точно? Пожалуйста - это было ${pytils.dt.distance_of_time_in_words(otime, 3)}.

Точно так же (т.е. для Вас абсолютно прозрачно) и с будущим временем - следующий тест будет ${pytils.dt.distance_of_time_in_words(ftime)}

`distance_of_time` умеет работать с обеими типами времени, представленных в Python: с `datetime.datetime` и `time.time`. Например, ${fdate} будет ${pytils.dt.distance_of_time_in_words(fdate)}

В шаблоне это выглядит так: ``

    <p>Например, тест прошлого времени был <em>$${pytils.dt.distance_of_time_in_words(otime)}</em>.
    Если более точно, то <em>$${pytils.dt.distance_of_time_in_words(otime, 2)}</em>. Нужно
    еще более точно? Пожалуйста - это было <em>$${pytils.dt.distance_of_time_in_words(otime, 3)}</em>.
    </p>
    <p>
    Точно так же (т.е. для Вас абсолютно прозрачно) и с будущим временем - следующий тест
    будет <em>$${pytils.dt.distance_of_time_in_words(ftime)}</em>
    </p>
    <p>
    <code>distance_of_time</code> умеет работать с обеими типами времени, представленных
    в Python: с <code>datetime.datetime</code> и <code>time.time</code>. Например,
    $${fdate} будет <em>$${pytils.dt.distance_of_time_in_words(fdate)}</em>
    </p>

### pytils.dt.ru_strftime

Тоже всё просто - используем обычный формат strftime, в котором %a, %A, %b и %B заменены на русские. К примеру, текущая дата: ${pytils.dt.ru_strftime(u"%d %B %Y, %A")}. Согласитесь, выглядит не по-русски. Чтобы месяц склонялся, используйте опцию `inflected`: ${pytils.dt.ru_strftime(u"%d %B %Y, %A", inflected=True)}. Если же нужно чтобы и день склонялся, используйте опцию `inflected_day`: текущий тест был выполнен в ${pytils.dt.ru_strftime(u"%A, %d %B %Y", inflected=True, inflected_day=True)}. Лучше же чтобы и предлог добавлялся автоматически: текущий тест выполнен ${pytils.dt.ru_strftime(u"%A, %d %B %Y", inflected=True, preposition=True)} (опция `preposition`).

Не забудьте, что формат нужно передавать в unicode, а не в строке (как в обычном strftime).

Приведенный выше текст в шаблоне записан следующим образом: ``

    <p>Тоже всё просто - используем обычный формат strftime, в котором %a, %A, %b и %B
    заменены на русские. К примеру, текущая дата: <em>$${pytils.dt.ru_strftime(u"%d %B %Y, %A")}</em>.
    Согласитесь, выглядит не по-русски. Чтобы месяц склонялся, используйте опцию
    <code>inflected</code>: <em>$${pytils.dt.ru_strftime(u"%d %B %Y, %A", inflected=True)}</em></p>.
    Если же нужно чтобы и день склонялся, используйте опцию <code>inflected_day</code>:
    текущий тест был выполнен в
    <em>$${pytils.dt.ru_strftime(u"%A, %d %B %Y", inflected=True, inflected_day=True)}</em>.
    Лучше же чтобы и предлог добавлялся автоматически: текущий тест выполнен
    <em>$${pytils.dt.ru_strftime(u"%A, %d %B %Y", inflected=True, preposition=True)}</em>
    (опция <code>preposition</code>).
    </p>