jdate 0.9.0
jdate: ^0.9.0 copied to clipboard
Powerful yet original Dart Jalali date and time for developers.

Powerful yet original Dart Jalali date and time for developers.
Creat a JDate object from DateTime #
DateTime extension toJDate() creates a JDate object for you:
print(DateTime.now().toJDate()); // 1399/04/29 16:32:36
print(DateTime(2020).toJDate()); // 1398/10/11 00:00:00
print(DateTime(2020, 7).toJDate()); // 1399/04/11 00:00:00
print(DateTime(2020, 7, 16).toJDate()); // 1399/04/26 00:00:00
print(DateTime(2020, 7, 16, 12).toJDate()); // 1399/04/26 12:00:00
print(DateTime(2020, 7, 16, 12, 18).toJDate()); // 1399/04/26 12:18:00
print(DateTime(2020, 7, 16, 12, 18, 30).toJDate()); // 1399/04/26 12:18:30
print(DateTime(2020, 7, 16, 12, 18, 30, 450).toJDate()); // 1399/04/26 12:18:30
JDate(year, month, ...) with shamsi date parameters #
You can creates a new jalali date object with a specified shamsi date and time.
print(JDate.now()); // 1399/04/29 16:32:36
print(JDate(1399)); // 1399/01/01 00:00:00
print(JDate(1399, 4)); // 1399/04/01 00:00:00
print(JDate(1399, 4, 15)); // 1399/04/15 00:00:00
print(JDate(1399, 4, 15, 20)); // 1399/04/15 20:00:00
print(JDate(1399, 4, 15, 20, 25)); // 1399/04/15 20:25:00
print(JDate(1399, 4, 15, 20, 25, 30)); // 1399/04/15 20:25:30
print(JDate(1399, 4, 15, 20, 25, 30, 650)); // 1399/04/15 20:25:30
Other Constructors #
JDate.utc(int year, [int month = 1,int day = 1,int hour = 0,int minute = 0,int second = 0,int millisecond = 0,int microsecond = 0 ])JDate.fromDateTime(DateTime date)JDate.fromMicrosecondsSinceEpoch(int microsecondsSinceEpoch, {bool isUtc = false})JDate.fromMillisecondsSinceEpoch(int millisecondsSinceEpoch, {bool isUtc = false})JDate.now()
JDate(...).echo #
var jd = JDate(2019, 4, 3, 10, 33, 30, 0);
print(jd.echo('l، d F Y ساعت H:i:s')); // چهارشنبه، 03 تیر 2019 ساعت 10:33:30
| Method | Description | Range | Example |
|---|---|---|---|
| a | Before noon and afternoon | ق.ظ - ب.ظ | ق.ظ |
| b | Numeric representation of a season, without leading zeros | 0-3 | 1 |
| d | Day of the month, 2 digits with leading zeros | 01-31 | 13 |
| f | Season name | بهار-زمستان | بهار |
| g | 12-hour format of an hour without leading zeros | 0-12 | 11 |
| h | 12-hour format of an hour with leading zeros | 00-12 | 03 |
| i | Minutes with leading zeros | 00-59 | 13 |
| j | Day of the month without leading zeros | 1-31 | 4 |
| l | A full textual representation of the day of the week | شنبه-جمعه | یکشنبه |
| m | Numeric representation of a month, with leading zeros | 01-12 | 02 |
| n | Numeric representation of a month, without leading zeros | 1-12 | 2 |
| s | Seconds, with leading zeros | 00-59 | 03 |
| t | Number of days in the given month | 0-31 | 28 |
| u | Millisecond | 000000 | 28 |
| v | Short year display in letters | یک-نهصد و نود و نه | نود و هشت |
| w | Numeric representation of the day of the week | 0-6 | 6 |
| y | A two or three digit representation of a year | 1-999 | 98 |
| A | Before noon and afternoon | بعد از ظهر - قبل از ظهر | قبل از ظهر |
| D | Persian ordinal suffix for the day of the month, 2 characters | شن - جم | سه |
| F | A full textual representation of a month | فروردین - اسفند | اردیبهشت |
| G | 24-hour format of an hour without leading zeros | 0-24 | 3 |
| H | 24-hour format of an hour with leading zeros | 00-24 | 03 |
| J | Day of the month | یک-سی و یک | سیزده |
| L | Whether it’s a leap year | 0-1 | 1 |
| M | A short textual representation of a month, two letters | فر-اس | ار |
| O | Difference to Greenwich time (GMT) in hours | -1200 - +1400 | +0330 |
| V | Full year display in letters | صفر-... | یک هزار و سیصد و نود و هشت |
| Y | A full numeric representation of a year, 4 digits | 0-... | 1398 |
JDate.parse(...) #
You can parse specified shamsi or date from valid date string to convert it to JDate object.
print(JDate.parse('1399/09/09 13:27:00')); // 1399/09/09 13:27:00
print(JDate.parse('1399-09-09 13:27:00')); // 1399/09/09 13:27:00
print(JDate.parse('۱۳۹۹/۰۹/۰۹')); // 1399/09/09 00:00:00
print(JDate.parse('1399/02/13')); // 1399/02/13 00:00:00
print(JDate.parse(JDate(1378).toString())); // 1378/01/01 00:00:00
JDate Parameters #
| Parameters | Description | Type | Access |
|---|---|---|---|
| microsecondsSinceEpoch | The number of microseconds since the 'Unix epoch' 1970-01-01T00:00:00Z (UTC). | int | read/write |
| millisecondsSinceEpoch | The number of milliseconds since the 'Unix epoch' 1970-01-01T00:00:00Z (UTC). | int | read/write |
| microsecond | The microsecond 0...999. |
int | read/write |
| millisecond | The millisecond 0...999. |
int | read/write |
| second | The second 0...59. |
int | read/write |
| minute | The minute 0...59. |
int | read/write |
| hour | The hour of the day, expressed as in a 24-hour clock 0..23. |
int | read/write |
| day | The day of the month 1..31. |
int | read/write |
| month | The month 1..12. |
int | read/write |
| year | The year. | int | read/write |
| weekday | The day of the week 1...7. |
int | read |
| timeZoneOffset | Difference between local time and UTC. | Duration | read |
| timeZoneName | The time zone name. | String | read |
| isUtc | True if this JDate is set to UTC time. |
bool | read |
| isLeapYear | True if this JDate.year is a leap year. |
bool | read |
| weekdayName | Returns the name of weekDay in persian. | String | read |
| monthName | Returns the name of month in persian. | String | read |
| shortYear | Returns the short version of year. | int | read |
| monthLength | Returns number of days in that month. | int | read |
JDate Instance Methods #
| Method | Description |
|---|---|
| changeTo({int year,int month,...,bool isUtc}) | Change a JDate instance to specified parameters. |
| echo(String format) | returns String of JDate base on given format. |
| toString() | Returns a human-readable string for this instance. |
| toDateTime() | Converts this JDate to a DateTime object with gregorian date. |
| add(Duration duration) | Returns a new JDate instance with duration added to this. |
| subtract(Duration duration) | Returns a new JDate instance with duration subtracted from this. |
| isAtSameMomentAs(JDate other) | Returns true if this occurs at the same moment as other. |
| isBefore(JDate other) | Returns true if this occurs before other. |
| isAfter(JDate other) | Returns true if this occurs after other. |
| Duration difference(JDate other) | Returns a Duration with the difference when subtracting other from this. |
| compareTo(JDate other) | Compares this JDate object to other, returning zero if the values are equal. |
| toIso8601String() | Returns an ISO-8601 full-precision extended format representation. |
| toUtc() | Returns this JDate value in the UTC time zone. |
| toLocal() | Returns this JDate value in the local time zone. |
Static methods #
These methods can be used without creating an instance of the object:
| Method | Description |
|---|---|
| parse(String string) | Parse the string an returns a JDate object, throws Exception if string is not valid |
| tryParse(String string) | Tries to parse the string an returns a JDate object, returns null if string is not valid |
| jalaliToGregorian(int year, int month, int date) | Converts Jalali date to Gregorian and return the result as a BasicDate |
| gregorianToJalali(int year, int month, int date) | Converts Gregorian date to Jalali and return the result as a BasicDate |
| ummalquraToGregorian(int year, int month, int date) | Converts Ummalqura date to Gregorian and return the result as a BasicDate |
| gregorianToUmmalqura(int year, int month, int date) | Converts Gregorian date to Ummalqura and return the result as a BasicDate |
| ummalquraToJalali(int year, int month, int date) | Converts Jalali date to Ummalqura and return the result as a BasicDate |
| jalaliToUmmalqura(int year, int month, int date) | Converts Ummalqura date to Jalali and return the result as a BasicDate |
| islamicToGregorian(int year, int month, int date) | Converts Islamic date to Gregorian and return the result as a BasicDate |
| gregorianToIslamic(int year, int month, int date) | Converts Gregorian date to Islamic and return the result as a BasicDate |
| islamicToJalali(int year, int month, int date) | Converts Islamic date to Jalali and return the result as a BasicDate |
| jalaliToIslamic(int year, int month, int date) | Converts Jalali date to Islamic and return the result as a BasicDate |
Extension Methods #
These methods can be used on mentioned objects:
| Method | Description |
|---|---|
| String.numbersToEnglish() | Converts Persian digits in string to english digits |
| String.numbersToPersian() | Converts English digits in string to Persian digits |
| int.toPersianWords(bool ordinal) | Returns number as Persian text |
| DateTime.toJdate() | Creates a JDate base on DateTime gregorian date |
License #
jdate_dart is available under the BSD 3 Clause license.
Copyright Notice #
The initial version of this library had been written based on JDate.js by Reza Moghaddam.
Date Conversion methods written based on Roozbeh Pournader and Mohammad Toossi work