Persian Date(Jalali)
Install
Gradle
Step 1.Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2.Add the dependency
dependencies {
implementation 'com.github.samanzamani:PersianDate:1.7.1'
}
what’s new
version 1.7.1
- Fix add/sub reported bug (Reported By @Alireza-Jamali). #81
- Add new adds methods:
addWeeks
,addDays
,addMonths
,addYears
,addHours
,addMinutes
,…. - Add new subs methods:
subsWeeks
,subsDays
,subsMonths
,subsYears
,subsHours
,subsMinutes
,…. - Increase test coverage.
version 1.6.1
- Add validation for set methods and Init methods (Reported By @ahmad-shoja). #77
- Add
isToday
method suggested by AlirezaGhanbarinia. #75 - Add
getGrgMonthLength
methods for get Gregorian month length. - Add
getGrgMonthName
methods for get Gregorian month name. - Add new
getMonthName
method for get month name with month number. - Increase test coverage.
version 1.5.4
- Correction
H
andg
keywords inPersianDateFormat
class. #71
Let’s convert some date :)
Step 1
PersianDate pdate = new PersianDate();
Step 2
PersianDateFormat pdformater = new PersianDateFormat();
pdformater.format(pdate);
PersianDateNumberCharacter
Since v1.3.3 you can use PersianDateNumberCharacter.FARSI
in PersianDateFomrat
object.
PersianDate pDate = new PersianDate();
PersianDateFormat pdformater1 = new PersianDateFormat();
PersianDateFormat pdformater2 = new PersianDateFormat('y F j');
PersianDateFormat pdformater3 = new PersianDateFormat('y F j',PersianDateNumberCharacter.FARSI); //return Farsi character
Or
PersianDate pDate = new PersianDate();
PersianDateFormat.format(pDate,'y F j');
PersianDateFormat.format(pDate,'y F j',PersianDateNumberCharacter.FARSI); //return Farsi character
PersianDate
- PersianDate class methods
method | description |
---|---|
PersianDate(Long timestamp) | make time with timestamp |
PersianDate(DATE date) | Constractor for make PersianDate object from Date object |
setShYear(int year) | Set Jalali year |
setShMonth(int month) | Set Jalali month |
setShDay(int day) | Set Jalali day |
setGrgYear(int year) | Set Gregorian year |
setGrgMonth(int month) | Set Gregorian month |
setGrgDay(int day) | Set Gregorian day |
setHour(int hour) | Set hour of day |
setMinute(int minute) | Set minute of day |
setSecond(int second) | Set second of day |
getShYear() | (int) return Jalali year |
getShMonth() | (int) return Jalali month |
getShDay() | (int) return Jalali day |
getGrgYear() | (int) return Gregorian year |
getGrgMonth() | (int) return Gregorian month |
getGrgDay() | (int) return Gregorian day |
getHour() | (int) return hour of day |
getMinute() | (int) return minute of day |
getSecond() | (int) return second of day |
getTime() | (Long) return timestamp |
initGrgDate() | init date from Gregorian |
initJalaliDate() | init date from Jalali |
isLeap() | Check Jalali year is leap (TRUE-FALSE) |
grgIsLeap() | Check Gregorian year is leap (TRUE-FALSE) |
toJalali(int year, int month, int day) | Convert Gregorian to Jalali (return int[3]) |
toGregorian(int year, int month, int day) | Convert Jalali to Gregorian (return int[3]) |
dayOfWeek() | 0-6 (0=sat) |
getDayInYear() | 1-366 |
dayName() | شنبه-جمعه |
monthName() | فروردین-اسفند |
getMonthDays() | return month lenght |
addDate() | add some date to object |
after(PersianDate dateInput) | Compare 2 date (true=if input date after this) |
before(PersianDate dateInput) | Compare 2 date (true=if input date before this) |
equals(PersianDate dateInput) | Compare 2 date (true=if input date equals this) |
untilToday() | Cal year,month,day until now |
getDayuntilToday() | Cal day until now |
toDate | convert to Date object |
PersianDateFormat
- PersianDate class methods for display and parse date
method | description |
---|---|
format() | (String) Display date |
parse(String date,String pattern) | (PersianDate) Convert string Jalali date (1396-05-05 & ‘yyyy-MM-dd’) to Persiandate |
parseGrg(String date,String pattern) | (PersianDate) Convert string Gregorian date (1396-05-05 & ‘yyyy-MM-dd’) to Persiandate |
format() | (String) Display date |
- Item for parse date
String key | Role |
---|---|
yyyy | Year (1396-2012-…) |
MM | Month number (12-01-02-…) |
dd | Day number (21-01-02-…) |
HH | Hour (21-01-02-…) |
mm | Minute (21-01-02-…) |
ss | Second (21-01-02-…) |
- Pattern item for format date
Pattern key | Role |
---|---|
l | Day name in week (شنبه و ….) |
j | Day number in month(1-10-20…) |
F | Month name (فروردین) |
Y | Year (1396…) |
H | Hour in day |
i | Minutes in hour |
s | Second in minute |
d | day in month (01-02-21…) |
g | Hour in day 1-12 |
n | Month of year 1-12 |
m | Month of year 01-12 |
t | number day of month |
w | day in week 0-6 |
y | year with 2 digits |
z | Number of days (full) past the year |
L | Is leap year (0-1) |
Example
PersianDate pdate = new PersianDate();
PersianDateFormat pdformater1 = new PersianDateFormat('Y/m/d');
pdformater1.format(pdate);//1396/05/20
PersianDateFormat pdformater2 = new PersianDateFormat('y F j');
pdformater2.format(pdate);//۱۹ تیر ۹۶