Skip to content

This Package Helps Developers To Easily Work With Jalali (Shamsi Or Iranian) Dates In Python applications.

License

Notifications You must be signed in to change notification settings

shobeiry/jalali

Repository files navigation

GitHub Downloads PyPI - Downloads

Jalali

Install

pip install jalali

Basic Usage

For Start Import Jalalian Library To Your Code Then Use:

from jalali.Jalalian import jdate, JDate

jd = JDate()
jd.format('Y/m/d H:i:s')
jd = JDate('2017-02-01 21:38:48')
jd.format('Y/m/d H:i:s')  # ۱۳۹۵/۱۱/۱۳ ۲۱:۳۸:۴۸
jd.add(years=3, months=2)
jd.format('Y/m/d H:i:s')  # ۱۳۹۹/۰۱/۱۵ ۲۱:۳۸:۴۸
jd.sub(years=1, months=5, hours=10)
jd.format('Y/m/d H:i:s')  # ۱۳۹۷/۰۸/۰۹ ۱۱:۳۸:۴۸

jd = JDate('1398-02-01 21:38:48', False)
jd.format('Y/m/d H:i:s')  # ۱۳۹۸/۰۲/۳۱ ۲۱:۳۸:۴۸
jd.add(years=3, months=2)
jd.format('Y/m/d H:i:s')  # ۱۴۰۱/۰۴/۳۰ ۲۱:۳۸:۴۸
jd.sub(years=1, months=5, hours=10)
jd.format('Y/m/d H:i:s')  # ۱۳۹۹/۱۱/۲۸ ۱۱:۳۸:۴۸

# نکته: اهمّیّت حروف بزرگ و کوچک در نام تابع و کاراکترهای پارامترها  
jdate('E') # بهمن  
jdate('e') # زمستان  
  
# ترکیب دو یا چند کاراکتر با حروف اضافه در یک خروجی  
jdate('H i s') # 10 26 53  
jdate('H:i:s') # 10:26:53  
jdate('Y/n/j') # 1389/11/22  
jdate('Y E j') # 22 بهمن 1389
jdate('V E J') # بیست و دو بهمن هزار و سیصد و هشتاد و نه  
  
# خارج کردن بعضی از کاراکترها یا حروف ، به صورت خام و تبدیل نشده با گذاشتن \ قبل از آن ها  
# منظور از کاراکتر ، تمامی حروف بزرگ و کوچک انگلیسی است که در جدول مربوطه نیز فهرست شده اند  
jdate('H:i:s') # 10:26:53  
jdate(r'H:\i:s') # 10:i:53  
jdate(r'H : \i\r\a\n') # 10 : iran  
jdate(r'\HH') # H10  
jdate(r'H\H') # 10H  
jdate(r'H\ H') # 10 10  
jdate(r'\HH\H') # H10H  
jdate(r'\H\o\u : H _ \M\i\n : i _ \S\e\c : s') # Hou : 10 _ Min : 26 _ Sec : 53  
  
# نکته: قبل از کاراکترهای خاص مثل ' و " حتماً از \ استفاده شود  
jdate(r" \" H \" ") # " 10 "  
jdate(r' \' H \' ') # ' 10 '  
  
# البتّه بستگی به شرایط دارد  
jdate(' " H " ') # " 10 "  
jdate(" ' H ' ") # ' 10 '  
  
# برای خارج کردن خام خود کاراکتر \ از یک \ در قبل از آن استفاده شود  
jdate(r'\\\\') # \\  
jdate(r'\\\\H') # \\10  
jdate(r'\\\\\H') # \\H  
  
# ترکیب حروف اضافه با کلمات خروجی  
jdate('E') # بهمن  
  
jdate('Eماه') # بهمنماه  
  
jdate('E ماه') # بهمن ماه 
  
jdate('ماه E') # ماه بهمن  
  
jdate('J') # بیست و دو  
  
jdate('Jم') # بیست و دوم  
  
jdate('Jمین') # بیست و دومین  
  
jdate('امروز : Jم E است') # امروز : بیست و دوم بهمن است  
  
jdate('امروز l است') # امروز جمعه است  
  
# مرتّب کردن ترکیب حروف و اعداد اضافه در خروجی با ساختار پیچیده  
# ترکیب های پیچیده ، ممکن است نامرتّب یا جا به جا ، نمایش داده شوند.  
# حتماً آن ها را در بین تگ <span dir=ltr></span> قرار دهید. (چپ به راست)  
# چند الگوی کاربردی زیر ، از قبل مرتّب شده اند. می توانید از این ها استفاده نمایید.  
# این الگوها را می توانید ویرایش کنید. حتماً بین تگ <span dir=ltr></span> قرار گیرند.  
  
jdate('c') # ۱۳۹۰/۱۱/۲۲ ,۱۰:۲۶:۵۳ +۰۳:۳۰  
  
jdate('r') # ۱۰:۲۶:۵۳ +۰۳۳۰ جمعه, ۲۲ بهمن ۱۳۹۰  
  
jdate('H:i:s O ,l, j E Y') # ۱۰:۲۶:۵۳ +۰۳۳۰ ,جمعه, ۲۲ بهمن ۱۳۹۰  
  
jdate('H:i:s P | l, j / E / Y') # ۱۰:۲۶:۵۳ +۰۳:۳۰ | جمعه, ۲۲ / بهمن / ۱۳۹۰  
  
jdate('H:i:s P | l, j E Y') # ۱۰:۲۶:۵۳ +۰۳:۳۰ | جمعه, ۲۲ بهمن ۱۳۹۰  
  
jdate('l, J / E / V') # جمعه, بیست و دو / بهمن / هزار و سیصد و هشتاد و نه  
  
jdate('l, J E V') # جمعه, بیست و دو بهمن هزار و سیصد و هشتاد و نه  
  
jdate('H:i:s P ,Y/n/j') # ۱۰:۲۶:۵۳ +۰۳:۳۰ ,۱۳۹۰/۱۱/۲۲  
  
jdate('H:i:s ,Y/n/j') # ۱۰:۲۶:۵۳ ,۱۳۹۰/۱۱/۲۲  
  
jdate('H:i:s Z ,Y/n/j') # ۱۰:۲۶:۵۳ Asia/Tehran ,۱۳۹۰/۱۱/۲۲

Format Help

Character Result Range
a اوقات روز - به صورت خلاصه ق.ض - ب.ض
A اوقات روز - به صورت کامل قبل از ظهر - بعد از ظهر
b شماره ی فصل (ربع) از سال 1 - 4
c تاریخ با قالب Y/n/j ,H:i:s P -
C شماره ی قرن هجری شمسی ... , 15 , 14 , ...
d شماره ی روز از ماه 1 - 31
e نام فصل بهار - زمستان
E نام ماه فروردین - اسفند
f میکرو ثانیه 000000 - 999999
i دقیقه 00 - 59
j شماره روز از ماه 1 - 31
J شماره ی روز از ماه به حروف یک - سی و یک
k درصد باقیمانده از سال 0 - 100
K درصد گذشت از سال 0 - 100
l نام روز در هفته شنبه - جمعه
L سال: 0-غیر کبیسه 1- کبیسه 0 - 1
m شماره ماه (دو رقمی) 01 - 12
M نام ماه به صورت خلاصه فر - اسـ
n شماره ماه 1 - 12
N عدد روز هفته (1 = یکشنبه) 1 - 7
o سال هفته ای (به عدد) چهار رقمی شماره ی سال
O ":" اختلاف ساعت جهانی - بدون +1400 , +1200
p نام باستانی برج ها حمل - حوت
P اختلاف ساعت جهانی -
q نام حیوانی سال ها موش - خوک
Q تعداد روز (کامل) باقی مانده از سال 365 - 0
r تاریخ با قالب مرکب H:i:s O Y E j ,l -
s شماره ثانیه در دقیقه 0 - 59
S چاپ "ام" ام
t تعداد روز های ماه 29, 30, 31
U timestamp (Unix) برچسب زمانی -
v سال به حروف - نود و نه
V سال به حروف - کامل -
w عدد روز در هفته - شنبه = 0 0 - 6
W شماره ی این هفته در سال 0 - 53
y سال به عدد (2 رقمی) 00 - 99
Y سال (به عدد) چهار رقمی -
z تعداد روز های گذشته از سال 0 - 365
Z نام منطقه زمانی -