PersianDate
Persian date for android
Install / Use
/learn @samanzamani/PersianDateREADME
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
isTodaymethod suggested by AlirezaGhanbarinia. #75 - Add
getGrgMonthLengthmethods for get Gregorian month length. - Add
getGrgMonthNamemethods for get Gregorian month name. - Add new
getMonthNamemethod for get month name with month number. - Increase test coverage.
version 1.5.4
- Correction
Handgkeywords inPersianDateFormatclass. #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);//۱۹ تیر ۹۶
Related Skills
node-connect
347.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
