Jalali datetime binding for python
Project description
jdatetime is Jalali implementation of Python’s datetime module
Status
Install
pip install jdatetime
Documents
This module exactly follows Python Standard datetime module’s methods http://docs.python.org/release/2.7.1/library/datetime.html
Also these methods are added to jdatetime.date and jdatetime.datetime :
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
Example
$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import jdatetime
>>> jdatetime.datetime.now()
jdatetime.datetime(1394, 12, 4, 8, 37, 31, 855729)
>>> jdatetime.date.today()
jdatetime.date(1394, 12, 4)
Locale
In order to get the date string in farsi you need to set the locale to fa_IR. The locale could be specified explicitly upon instantiation of date/datetime instances, or by setting a default locale.
Instance locales is named argument only:
import jdatetime
fa_date = jdatetime.date(1397, 4, 23, locale='fa_IR')
fa_datetime = jdatetime.datetime(1397, 4, 23, 11, 40, 30, locale='fa_IR')
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.
$ python
Python 2.7.9 (default, Mar 1 2015, 12:57:24)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> 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, "fa_IR")
'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.
import jdatetime
jdatetime.set_locale('fa_IR')
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:
$ 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:
$ pip install tox
And then you can run all tests:
$ tox
If you wish to limit the testing to specific Python version, you can parametrize the tox run:
$ tox -e py39
Release Steps
Bump the version in setup.py and jdatetime/__init__.py. We are using Semantic Versioning.
Add release notes in CHANGELOG.md
Commit and push the changes. Create a PR
After the PR is merged, create a release with a tag name like v<version>
Github Action creates the package and deploys it to pypi.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file jdatetime-3.8.2.tar.gz
.
File metadata
- Download URL: jdatetime-3.8.2.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c685687e3f39e1b9a3ba9c00ed9d8e88603bc8994413e84623e6c5d43214e6f8 |
|
MD5 | 4b58ee001e215027b5a483dcc5619c6e |
|
BLAKE2b-256 | 06cfa20e8b5c5a87491b0cc34f99929f381d004c7b4e0dcdd635a958dc60d2a9 |
File details
Details for the file jdatetime-3.8.2-py3-none-any.whl
.
File metadata
- Download URL: jdatetime-3.8.2-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45639531930aa0aa6cece334276aafcafc16cc6272579d596f3594e15de4d7f3 |
|
MD5 | d7547e3415f8cf7d1838fbccda5cb70d |
|
BLAKE2b-256 | 5acf5a96d35b1822f28473f3c93fed216f9ccc8fadc1f99e408e33b74b04b7db |