Jinja2 Time Save

:calendar: Jinja2 Extension for Dates and Times

Project README

=========== Jinja2 Time

|pypi| |pyversions| |license| |travis-ci|

Jinja2 Extension for Dates and Times

.. |pypi| image:: https://img.shields.io/pypi/v/jinja2-time.svg :target: https://pypi.python.org/pypi/jinja2-time :alt: PyPI Package

.. |pyversions| image:: https://img.shields.io/pypi/pyversions/jinja2-time.svg :target: https://pypi.python.org/pypi/jinja2-time/ :alt: PyPI Python Versions

.. |license| image:: https://img.shields.io/pypi/l/jinja2-time.svg :target: https://pypi.python.org/pypi/jinja2-time :alt: PyPI Package License

.. |travis-ci| image:: https://travis-ci.org/hackebrot/jinja2-time.svg?branch=master :target: https://travis-ci.org/hackebrot/jinja2-time :alt: See Build Status on Travis CI

Installation

jinja2-time is available for download from PyPI_ via pip_::

$ pip install jinja2-time

It will automatically install jinja2_ along with arrow_.

.. _jinja2: https://github.com/mitsuhiko/jinja2 .. _PyPI: https://pypi.python.org/pypi .. _arrow: https://github.com/crsmithdev/arrow .. _pip: https://pypi.python.org/pypi/pip/

Usage

Now Tag


The extension comes with a ``now`` tag that provides convenient access to the
`arrow.now()`_ API from your templates.

You can control the output by specifying a format, that will be passed to
Python's `strftime()`_:

.. _`arrow.now()`: http://crsmithdev.com/arrow/#arrow.factory.ArrowFactory.now
.. _`strftime()`: https://docs.python.org/3.5/library/datetime.html#strftime-and-strptime-behavior

.. code-block:: python

    from jinja2 import Environment

    env = Environment(extensions=['jinja2_time.TimeExtension'])

    # Timezone 'local', default format -> "2015-12-10"
    template = env.from_string("{% now 'local' %}")

    # Timezone 'utc', explicit format -> "Thu, 10 Dec 2015 15:49:01"
    template = env.from_string("{% now 'utc', '%a, %d %b %Y %H:%M:%S' %}")

    # Timezone 'Europe/Berlin', explicit format -> "CET +0100"
    template = env.from_string("{% now 'Europe/Berlin', '%Z %z' %}")

    # Timezone 'utc', explicit format -> "2015"
    template = env.from_string("{% now 'utc', '%Y' %}")

    template.render()

Default Datetime Format

TimeExtension extends the environment with a datetime_format attribute.

It is used as a fallback if you omit the format for now.

.. code-block:: python

from jinja2 import Environment

env = Environment(extensions=['jinja2_time.TimeExtension'])

env.datetime_format = '%a, %d %b %Y %H:%M:%S'

# Timezone 'utc', default format -> "Thu, 10 Dec 2015 15:49:01"
template = env.from_string("{% now 'utc' %}")

template.render()

Time Offset


**jinja2-time** implements a convenient interface to modify ``now`` by a
relative time offset:

.. code-block:: python

    # Examples for now "2015-12-09 23:33:01"

    # "Thu, 10 Dec 2015 01:33:31"
    "{% now 'utc' + 'hours=2, seconds=30' %}"

    # "Wed, 09 Dec 2015 23:22:01"
    "{% now 'utc' - 'minutes=11' %}"

    # "07 Dec 2015 23:00:00"
    "{% now 'utc' - 'days=2, minutes=33, seconds=1', '%d %b %Y %H:%M:%S' %}"

Further documentation on the underlying functionality can be found in the
`arrow replace docs`_.

.. _`arrow replace docs`: http://arrow.readthedocs.io/en/latest/#replace-shift


Issues
------

If you encounter any problems, please `file an issue`_ along with a detailed description.

.. _`file an issue`: https://github.com/hackebrot/jinja2-time/issues


Code of Conduct
---------------

Everyone interacting in the jinja2-time project's codebases, issue trackers, chat
rooms, and mailing lists is expected to follow the `PyPA Code of Conduct`_.

.. _`PyPA Code of Conduct`: https://www.pypa.io/en/latest/code-of-conduct/

License
-------

Distributed under the terms of the `MIT`_ license, jinja2-time is free and open source software

.. image:: https://opensource.org/trademarks/osi-certified/web/osi-certified-120x100.png
   :align: left
   :alt: OSI certified
   :target: https://opensource.org/

.. _`MIT`: http://opensource.org/licenses/MIT
Open Source Agenda is not affiliated with "Jinja2 Time" Project. README Source: hackebrot/jinja2-time
Stars
69
Open Issues
15
Last Commit
2 years ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating