Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
jdatetime is Jalali_ implementation of Python's datetime module
.. image:: https://github.com/slashmili/python-jalali/workflows/Tests/badge.svg?branch=main :target: https://github.com/slashmili/python-jalali/actions
.. image:: https://ci.appveyor.com/api/projects/status/ge5rk703ydx649a6?svg=true :target: https://ci.appveyor.com/project/slashmili/python-jalali
.. image:: https://img.shields.io/pypi/v/jdatetime.svg :target: https://pypi.python.org/pypi/jdatetime
.. image:: https://img.shields.io/pypi/pyversions/jdatetime.svg :target: https://pypi.python.org/pypi/jdatetime
pip install jdatetime
This module exactly follows Python Standard datetime module's methods http://docs.python.org/release/3.7.1/library/datetime.html
Also these methods are added to jdatetime.date and jdatetime.datetime :
.. code-block:: python
fromgregorian(**kw)
Convert gregorian to jalali and return jdatetime.date
jdatetime.date.fromgregorian(day=X,month=X,year=X)
jdatetime.date.fromgregorian(date=datetime.date)
jdatetime.datetime.fromgregorian(datetime=datetime.datetime)
togregorian(self)
Convert current jalali date to gregorian and return datetime.date
isleap(self)
check if year is leap year
algortim is based on http://en.wikipedia.org/wiki/Leap_year
.. code-block:: shell
>>> import jdatetime
>>> jdatetime.datetime.now()
jdatetime.datetime(1394, 12, 4, 8, 37, 31, 855729)
>>> jdatetime.date.today()
jdatetime.date(1394, 12, 4)
In order to get the date string in farsi you need to set the locale to jdatetime.FA_LOCALE
. The locale
could be specified explicitly upon instantiation of date
/datetime
instances, or by
setting a default locale.
Instance locales is named argument only:
.. code-block:: python
import jdatetime
fa_date = jdatetime.date(1397, 4, 23, locale=jdatetime.FA_LOCALE)
fa_datetime = jdatetime.datetime(1397, 4, 23, 11, 40, 30, locale=jdatetime.FA_LOCALE)
date
and datetime
instances provide the method aslocale()
to return a clone of the instance
with the same timestamp, in a different locale.
Default Locale
It's possible to set the default locale, so all new instances created afterwards would use
the desired locale, unless explicitly specified otherwise.
.. code-block:: shell
>>> import locale
>>> import jdatetime
>> jdatetime.datetime.now().strftime("%a, %d %b %Y %H:%M:%S")
u'Wed, 08 Ord 1395 20:47:32'
>>> locale.setlocale(locale.LC_ALL, jdatetime.FA_LOCALE)
'fa_IR'
>>> jdatetime.datetime.now().strftime("%a, %d %b %Y %H:%M:%S")
u'\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647, 08 \u0627\u0631\u062f\u06cc\u0628\u0647\u0634\u062a 1395 20:47:56'
If your requirements demand to support different locales withing the same process,
you could set the default locale per thread. New `date` and `datetime` instances
created in each thread, will use the specified locale by default.
This supports both Python threads, and greenlets.
.. code-block:: python
import jdatetime
jdatetime.set_locale(jdatetime.FA_LOCALE)
jdatetime.datetime.now().strftime('%A %B')
# u'\u062f\u0648\u0634\u0646\u0628\u0647 \u062e\u0631\u062f\u0627\u062f'
Development
-----------
You can contribute to this project forking it from GitHub and sending pull requests.
First fork_ the repository_ and then clone it:
.. code:: shell
$ git clone git@github.com:<you>/python-jalali.git
Before committing, you can run all the above tests against all supported Python versions with tox.
You need to install tox first:
.. code:: shell
$ pip install tox
And then you can run all tests:
.. code:: shell
$ tox
If you wish to limit the testing to specific Python version, you can parametrize the tox run:
.. code:: shell
$ tox -e py39
Release Steps
setup.py
and jdatetime/__init__.py
. We are using Semantic Versioning.v<version>
.. _Jalali: http://en.wikipedia.org/wiki/Iranian_calendar .. _fork: https://help.github.com/en/articles/fork-a-repo .. _repository: https://github.com/slashmili/python-jalali
FAQs
Jalali datetime binding for python
We found that jdatetime demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.