An Iso.Date represents a calendar date. "Calendar date" refers to the concept of a date as expressed in everyday usage, independent of any time zone. For example, it could be used to represent an event on a calendar which happens during the whole day no matter which time zone it's happening in.
Iso.Date refers to the whole of a specific day; if you need to refer to a specific time on that day, use Iso.DateTime. An Iso.Date can be converted into a Iso.ZonedDateTime by combining it with a Iso.Time and Iso.TimeZone using the toZonedDateTime() function. It can also be combined with a Iso.Time to yield a "zoneless" Iso.DateTime using the toDateTime() method.
Iso.YearMonth and Iso.MonthDay carry less information than Iso.Date and should be used when complete information is not required.
now()
now(
timeZone?):Date
This method gets the current calendar date according to the system settings. Optionally a time zone can be given in which the time is computed, instead of the current system time zone.
Parameters
timeZone?
string
The time zone to get the current date and time in, as a string. If not given, the current system time zone will be used.
Returns
an Iso.Date string representing the date.
fromNumbers()
fromNumbers(
year,month,day):Date
Parameters
year
number
month
number
day
number
Returns
isValid()
isValid(
date):date is Date
Parameters
date
unknown
Returns
date is Date
assertIsValid()
assertIsValid(
date):asserts date is Date
Parameters
date
unknown
Returns
asserts date is Date
getYear()
getYear(
date):number
Parameters
date
Returns
number
getMonth()
getMonth(
date):number
Parameters
date
Returns
number
getDay()
getDay(
date):number
Parameters
date
Returns
number
getDayOfWeek()
getDayOfWeek(
date):number
Parameters
date
Returns
number
getDayOfYear()
getDayOfYear(
date):number
Parameters
date
Returns
number
getWeekOfYear()
getWeekOfYear(
date):number
Parameters
date
Returns
number
getDaysInMonth()
getDaysInMonth(
date):number
Parameters
date
Returns
number
getDaysInYear()
getDaysInYear(
date):number
Parameters
date
Returns
number
inLeapYear()
inLeapYear(
date):boolean
Parameters
date
Returns
boolean
with()
with(
dateTime,temporalDateLike,options?):Date
Parameters
dateTime
temporalDateLike
day?
number
month?
number
year?
number
options?
overflow?
"constrain" | "reject"
Returns
add()
add(
date,temporalDurationLike,options?):Date
Parameters
date
temporalDurationLike
Duration | { years?: number; months?: number; weeks?: number; days?: number; hours?: number; minutes?: number; seconds?: number; milliseconds?: number; }
options?
overflow?
"constrain" | "reject"
Returns
subtract()
subtract(
date,temporalDurationLike,options?):Date
Parameters
date
temporalDurationLike
Duration | { years?: number; months?: number; weeks?: number; days?: number; hours?: number; minutes?: number; seconds?: number; milliseconds?: number; }
options?
overflow?
"constrain" | "reject"
Returns
until()
until(
date,other,options?):Duration
Parameters
date
other
options?
largestUnit?
LargestUnit\<"day" | "week" | "month" | "year">
smallestUnit?
SmallestUnit\<"day" | "week" | "month" | "year">
roundingIncrement?
number
roundingMode?
RoundingMode
Returns
since()
since(
date,other,options?):Duration
Parameters
date
other
options?
largestUnit?
LargestUnit\<"day" | "week" | "month" | "year">
smallestUnit?
SmallestUnit\<"day" | "week" | "month" | "year">
roundingIncrement?
number
roundingMode?
RoundingMode
Returns
equals()
equals(
date,other):boolean
Parameters
date
other
Returns
boolean
isEqual()
isEqual(
date,other):boolean
alias for equals
Parameters
date
other
Returns
boolean
isBefore()
isBefore(
date,other):boolean
Parameters
date
other
Returns
boolean
isAfter()
isAfter(
date,other):boolean
Parameters
date
other
Returns
boolean
isEqualOrBefore()
isEqualOrBefore(
date,other):boolean
Parameters
date
other
Returns
boolean
isEqualOrAfter()
isEqualOrAfter(
date,other):boolean
Parameters
date
other
Returns
boolean
toDateTime()
toDateTime(
date,time?):DateTime
Parameters
date
time?
Returns
toZonedDateTime()
toZonedDateTime(
date,item):ZonedDateTime
Parameters
date
item
timeZone
string
time?
Returns
toYearMonth()
toYearMonth(
date):YearMonth
Parameters
date
Returns
toMonthDay()
toMonthDay(
date):MonthDay
Parameters
date
Returns
getFields()
getFields(
date):DateSlots
Parameters
date
Returns
DateSlots
from()
from(
item,options?):Date
Parameters
item
string | Partial\<DateSlots>
options?
overflow
"constrain" | "reject"
Returns
compare()
compare(
one,two):number
Parameters
one
two
Returns
number
format()
format(
date,format,options?):string
Parameters
date
the original date
format
string
the string of tokens
options?
FormatOptions
Returns
string
the formatted date string
Description
Return the formatted ZonedDateTime string in the given format.
The characters wrapped between two single quotes characters (') are escaped. Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote. (see the last example)
Format of the string is based on Unicode Technical Standard #35: https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table with a few additions (see note 7 below the table).
Accepted patterns:
| Unit | Pattern | Result examples | Notes |
|---|---|---|---|
| Era | G..GGG | AD, BC | |
| GGGG | Anno Domini, Before Christ | 1 | |
| GGGGG | A, B | ||
| Calendar year | y | 44, 1, 1900, 2017 | 4 |
| yo | 44th, 1st, 0th, 17th | 4,5 | |
| yy | 44, 01, 00, 17 | 4 | |
| yyy | 044, 001, 1900, 2017 | 4 | |
| yyyy | 0044, 0001, 1900, 2017 | 4 | |
| yyyyy | ... | 2,4 | |
| Extended year | u | -43, 0, 1, 1900, 2017 | 4 |
| uu | -43, 01, 1900, 2017 | 4 | |
| uuu | -043, 001, 1900, 2017 | 4 | |
| uuuu | -0043, 0001, 1900, 2017 | 4 | |
| uuuuu | ... | 2,4 | |
| Quarter | Q | 1, 2, 3, 4 | |
| Qo | 1st, 2nd, 3rd, 4th | 5 | |
| 01, 02, 03, 04 | |||
| QQQ | Q1, Q2, Q3, Q4 | ||
| QQQQ | 1st quarter, 2nd quarter, ... | 1 | |
| QQQQQ | 1, 2, 3, 4 | 3 | |
| Month | M | 1, 2, ..., 12 | |
| Mo | 1st, 2nd, ..., 12th | 5 | |
| MM | 01, 02, ..., 12 | ||
| MMM | Jan, Feb, ..., Dec | ||
| MMMM | January, February, ..., December | 1 | |
| MMMMM | J, F, ..., D | ||
| ISO week of year | I | 1, 2, ..., 53 | 5 |
| Io | 1st, 2nd, ..., 53th | 5 | |
| II | 01, 02, ..., 53 | 5 | |
| Day of month | d | 1, 2, ..., 31 | |
| do | 1st, 2nd, ..., 31st | 5 | |
| dd | 01, 02, ..., 31 | ||
| ISO day of week | i | 1, 2, 3, ..., 7 | 5 |
| io | 1st, 2nd, ..., 7th | 5 | |
| ii | 01, 02, ..., 07 | 5 | |
| iii | Mon, Tue, Wed, ..., Sun | 5 | |
| iiii | Monday, Tuesday, ..., Sunday | 1,5 | |
| iiiii | M, T, W, T, F, S, S | 5 | |
| iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 | |
| Long localized date | P | 04/29/1453 | 5 |
| PP | Apr 29, 1453 | 5 | |
| PPP | April 29th, 1453 | 5 | |
| PPPP | Friday, April 29th, 1453 | 1,5 |
Notes:
Any sequence of the identical letters is a pattern, unless it is escaped by the single quote characters (see below). If the sequence is longer than listed in table (e.g.
EEEEEEEEEEE) the output will be the same as default pattern for this unit, usually the longest one (in case of ISO weekdays,EEEE). Default patterns for units are marked with "2" in the last column of the table.format("2017-11-06", 'MMM') //=> 'Nov'format("2017-11-06", 'MMMM') //=> 'November'format("2017-11-06", 'MMMMM') //=> 'N'format("2017-11-06", 'MMMMMM') //=> 'November'format("2017-11-06", 'MMMMMMM') //=> 'November'Some patterns could be unlimited length (such as
yyyyyyyy). The output will be padded with zeros to match the length of the pattern.format("2017-11-06", 'yyyyyyyy') //=> '00002017'QQQQQcould be not strictly numerical in some locales. These tokens represent the shortest form of the quarter.The main difference between
yandupatterns are B.C. years:Year yuAC 1 1 1 BC 1 1 0 BC 2 2 -1 Also
yyalways returns the last two digits of a year, whileuupads single digit years to 2 characters and returns other years unchanged:Year yyuu1 01 01 14 14 14 376 76 376 1453 53 1453 These patterns are not in the Unicode Technical Standard #35:
i: ISO day of weekI: ISO week of yearo: ordinal number modifierP: long localized datep: long localized time
- Characters are escaped using single quote symbols (
').
Example
// Represent 11 February 2014 in middle-endian format:
var result = format("2014-02-11", 'MM/dd/yyyy')
//=> '02/11/2014'
chain()
chain(
date):IDateChain
Parameters
date
Returns
IDateChain