Persian Date & Time library (aka: Jalali Calendar) with timezone, DST(daylight-saving), full formatting & parsing support for python 2 & 3 including c extention
Project description
Jump To:
Basic Usage
>>> from khayyam import * >>> JalaliDate(1346, 12, 30) khayyam.JalaliDate(1346, 12, 30, Chaharshanbeh)>>> JalaliDatetime(989, 3, 25, 10, 43, 23, 345453) khayyam.JalaliDatetime(989, 3, 25, 10, 43, 23, 345453, Seshanbeh)
Current date and time
>>> print(JalaliDatetime.now()) khayyam.JalaliDatetime(1394, 5, 18, 16, 4, 48, 628383, Yekshanbeh)>>> print(JalaliDatetime.now(TehranTimezone()) - timedelta(days=6*30)) 1393-11-02 20:01:11.663719+03:30>>> print(JalaliDate.today()) 1394-4-30
Parsing & Formatting
>>> print(JalaliDatetime.now().strftime('%C')) شنبه ۳ مرداد ۱۳۹۴ ۰۲:۳۷:۵۲ ب.ظ>>> JalaliDatetime.strptime(u'چهارشنبه ۳۱ تیر ۱۳۹۴ ۰۵:۴۵:۴۰ ب.ظ', '%C') khayyam.JalaliDatetime(1394, 4, 31, 17, 45, 40, 0, Chaharshanbeh)
Converting
>>> from datetime import date, datetime >>> JalaliDate(1394, 4, 31).todate() datetime.date(2015, 7, 22)>>> now = JalaliDatetime(1394, 4, 31, 15, 38, 6, 37269) >>> now.todate() datetime.date(2015, 7, 22)>>> now.todatetime() datetime.datetime(2015, 7, 22, 15, 38, 6, 37269)>>> JalaliDatetime(datetime(2015, 7, 22, 14, 47, 9, 821830)) khayyam.JalaliDatetime(1394, 4, 31, 14, 47, 9, 821830, Chaharshanbeh)>>> JalaliDatetime(datetime(2015, 7, 22, 14, 47, 9, 821830, TehranTimezone())) khayyam.JalaliDatetime(1394, 4, 31, 14, 47, 9, 821830, tzinfo=+03:30 dst:60, Chaharshanbeh)>>> JalaliDate(date(2015, 7, 22)) khayyam.JalaliDate(1394, 4, 31, Chaharshanbeh)
Arithmetics & Operators
>>> from datetime import timedelta >>> from khayyam import JalaliDate, JalaliDatetime >>> now = JalaliDatetime(1394, 4, 31, 16, 17, 31, 374398) >>> now + timedelta(days=1) khayyam.JalaliDatetime(1394, 5, 1, 16, 17, 31, 374398, Panjshanbeh)>>> now + timedelta(seconds=3600) khayyam.JalaliDatetime(1394, 4, 31, 17, 17, 31, 374398, Chaharshanbeh)>>> now - timedelta(seconds=3600) khayyam.JalaliDatetime(1394, 4, 31, 15, 17, 31, 374398, Chaharshanbeh)>>> yesterday = now - timedelta(1) >>> yesterday khayyam.JalaliDatetime(1394, 4, 30, 16, 17, 31, 374398, Seshanbeh)>>> now - yesterday datetime.timedelta(1)>>> JalaliDatetime.now() - now datetime.timedelta(0, 478, 328833) # 478 seconds taken to writing this section
Comparison
>>> now > yesterday True>>> now != yesterday True>>> now.todate() == yesterday.todate() False
Change Log
- 3.0.15:
BUGFIX: Removing from sphinx.util import inspect from jalali_datetime.py.
- 3.0.11
Allmost the all API’s are documented.
- 3.0.10
Imoprting JalaliDateFormatter & JalaliDatetimeFormatter in __init__.py
Accept also callable in JalaliDatetime.__init__(tzinfo=…) for tzinfo argument.
JalaliDatetime APIs, well documented.
- 3.0.9
Removing pypy from travis, due the travis bug: buffer overflow !
- 3.0.0
Raising TypeError instead of ValueError on overloaded operators, if the given type is mismatch.
Fixing tests to pass on systems that configured as UTC.
100% Code coverage
Moving all tests to khayyam/tests
Removing some uncovered, obsolete code lines
- 2.11.0
Using pure C instead of cython. Now the C extension is as fast as possible.
Including OSX in travis.yaml for python 2 & 3
Including pypy 2 & 3 tests in travis.yaml
- 2.10.0
Add english weekday format directive
- 2.9.8
Registering on travis-ci.org
Registering on coveralls.io
Registering on requires.io
- 2.9.7
Fixing problem in setup.py in python3 #15
- 2.9.3
setup.py for windows
- 2.9.1
Release !
- 2.9.1b2
encoding all __repr__ functions
- 2.9.1b1 (2015-07-30)
Fixing setup.py bug
- 2.9.1b0 (2015-07-30)
Using any available C compiler if cython is not available.
Using pure python if any error raised on installation with extension.
- 2.9.0b0 (2015-07-30)
- All algorithms reimplemented using cython and static typing, so the calculation
with new C extension is very faster than python pure algorithm implementation.
Fallback switch to pure python algorithm implementation, if compiled binaries not available.
Test case(s) for algorithms(C & Python).
- 2.8.0b1 (2015-07-28)
Jalalidate.timetuple method implemented from scratch including unit test.
Some methods with underscore renamed: JalaliDate.*_ascii to JalaliDate.*ascii
- 2.7.0b2 (2015-07-26)
README.rst
- 2.7.0-beta (2015-07-25)
some bug fixes.
method Jalalidate.fromdate removed. use constructor instead: JalaliDate(date)
method Jalalidate.fromjulianday removed. use constructor instead: JalaliDate(julian_days=..)
method Jalalidate.fromdatetime removed. use constructor instead: JalaliDatetime(datetime)
- 2.6.0-beta (2015-07-25)
All possible formatting directives(a-z, A-Z) are supported, except: T
All format directives are tested.
Formatting and parsing test cases moved to khayyam.formatting.tests package.
In project: docs/html
JalaliDate.from_julian_days renamed to JalaliDate.fromjuliandays
JalaliDate.from_julian_days renamed to JalaliDate.fromjuliandays
JalaliDate.days_in_month renamed to JalaliDate.daysinmonth
JalaliDate.is_leap renamed to JalaliDate.isleap
JalaliDatetime Modern properties.
README.md updated
- 2.5.0-beta (2015-07-23)
Doc: doctest
Doc: formatting and parsing directives table.
Doc: adding examples of new formatting directives in introduction: %D, %J, %R, %N, %n, %F, %h, %i, %r, %s, %o.
local date & time formats are changed: digits -> persian
Formatting and parsing test cases has been separated
- 2.4.0-beta (2015-07-22)
Persian Numbers
%D, %J, %R, %N, %n, %F, %h, %i, %r, %s, %o directives has been added.
- 2.3.0-alpha (2015-07-22)
Constants are moved to formatting packages except MINYEAR, MAXYEAR ans weekdays.
Doc: Introduction -> Formatting & parsing
Doc: Introduction -> Converting
New methods jalaliDate.todate, jalaliDate.fromdate, jalaliDatetime.todatetime and jalaliDatetime.fromdatetime
Removed methods jalaliDate.to_date, jalaliDate.from_date, jalaliDatetime.to_datetime and jalaliDatetime.fromdate_time
- 2.2.1-alpha (2015-07-21)
Doc: Reading package’s version automatically from khayyam/__init__.py in sphinx/conf.py
Doc: Installation: (PYPI, Development version)
Doc: Testing
Doc: Contribution
- 2.2.0-alpha (2015-07-21)
Generating API Documentation
- 2.1.0-alpha (2015-07-20)
Adding ascii weekdayname in JalaliDatetime and JalaliDate representation(__repr__).
- 2.0.0-alpha (2015-07-19) Incompatible with < 2.0.0
JalaliDate: method localformat renamed to localdateformat.
JalaliDatetime: method localformat renamed to localdatetimeformat.
JalaliDatetime: method localshortformat_ascii renamed to localshortformatascii.
JalaliDatetime: method localdatetimeformat_ascii renamed to localdatetimeformatascii.
JalaliDatetime: method ampm_ascii renamed to ampmascii.
JalaliDatetime: Migrating to New Formatter/Parser Engine
TehTz: renamed to TehranTimezone
Comparison and Timezones
Comparison with datetime.date & datetime.datetime
Fixing timezone bug
- 1.1.0 (2015-07-17)
JalaliDate: New Formatter/Parser & full unittests.
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 Distributions
File details
Details for the file Khayyam-3.0.17.tar.gz
.
File metadata
- Download URL: Khayyam-3.0.17.tar.gz
- Upload date:
- Size: 47.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0a30c6e9caa56a7f730879df8f3fe0ad7d9fa8c57b0d8f479cfa0460a7647f2 |
|
MD5 | 1a688977d955fb203dfa81caf90518be |
|
BLAKE2b-256 | 09510af60dfa44b5cc8719ab29d73e8d281cfa628b74ea621548ce2e2dbdd088 |
File details
Details for the file Khayyam-3.0.17-cp36-cp36m-macosx_10_11_x86_64.whl
.
File metadata
- Download URL: Khayyam-3.0.17-cp36-cp36m-macosx_10_11_x86_64.whl
- Upload date:
- Size: 49.0 kB
- Tags: CPython 3.6m, macOS 10.11+ x86-64
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b444aa453ad72d549e065be09a3312e6140a8e015850a890b2f27c8a435eade |
|
MD5 | 532c72372af97b4daec66662b2920493 |
|
BLAKE2b-256 | b4a7fa299c90168a3afc12a6e4ac5b164288f8ff4ea52ac8f15a13ee4ceb00fc |
File details
Details for the file Khayyam-3.0.17-cp27-cp27m-macosx_10_11_x86_64.whl
.
File metadata
- Download URL: Khayyam-3.0.17-cp27-cp27m-macosx_10_11_x86_64.whl
- Upload date:
- Size: 49.0 kB
- Tags: CPython 2.7m, macOS 10.11+ x86-64
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa389c52bda8813ca7af177ea19077455ac7ee64ae44c3eac44dc675be1bb316 |
|
MD5 | 93e51494e5f75cbc34e410755ec1da30 |
|
BLAKE2b-256 | 2329f1d2c9684b3a3dc199b50435a69b0163cc40c3334292dd71e7a9ba17e343 |