const class sys::Date
sys::Obj sys::Date
@Serializable { simple=true }
Date represents a day in time independent of a timezone.
- compare
-
virtual override Int compare(Obj obj)
Compare based on year, month, and day.
- day
-
Int day()
Get the day of the month as a number between 1 and 31.
- dayOfYear
-
Int dayOfYear()
Return the day of the year as a number between 1 and 365 (or 1 to 366 if a leap year).
- defVal
-
const static Date defVal
Default value is "2000-01-01".
- equals
-
virtual override Bool equals(Obj? that)
Two dates are equal if they have the same year, month, and day.
- firstOfMonth
-
Date firstOfMonth()
Get the first day of this Date's current month.
Example:
Date("2009-10-28").firstOfMonth => 2009-10-01
- fromIso
-
static Date? fromIso(Str s, Bool checked := true)
Parse an ISO 8601 date. If invalid format and checked is false return null, otherwise throw ParseErr. The following format is supported:
YYYY-MM-DD
- fromLocale
-
static Date? fromLocale(Str str, Str pattern, Bool checked := true)
Parse a string into a Date using the given pattern. If string is not a valid format then return null or raise ParseErr based on checked flag. See
toLocale
for pattern syntax. - fromStr
-
static new fromStr(Str s, Bool checked := true)
Parse the string into a Date from the programmatic encoding defined by
toStr
. If the string cannot be parsed into a valid Date and checked is false then return null, otherwise throw ParseErr. - hash
-
virtual override Int hash()
Return hash of year, month, and day.
- isToday
-
Bool isToday()
Return is this date equal to
today
. - isTomorrow
-
Bool isTomorrow()
Return is this date equal to
today
+ 1day. - isYesterday
-
Bool isYesterday()
Return is this date equal to
today
- 1day. - lastOfMonth
-
Date lastOfMonth()
Get the last day of this Date's current month.
Example:
Date("2009-10-28").lastOfMonth => 2009-10-31
- make
-
static new make(Int year, Month month, Int day)
Make for the specified date values:
- year: no restriction (although only 1901-2099 maps to DateTime)
- month: Month enumeration
- day: 1-31
Throw ArgErr if any of the parameters are out of range.
- midnight
-
DateTime midnight(TimeZone tz := TimeZone.cur())
Return a DateTime for the beginning of this day at midnight.
- minus
-
@Operator
Date minus(Duration days)Subtract the specified number of days to this date to get a date in the past. Throw ArgErr if
days
parameter is not a whole number of days (must be evenly divisible by 24hr).Example:
Date(2008, Month.feb, 28) - 2day => 2008-02-26
- minusDate
-
@Operator
Duration minusDate(Date days)Return the delta between this and the given date. The result is always an exact multiple of 24 hour days.
Example:
Date(2009, Month.jan, 5) - Date(2009, Month.jan, 2) => 3day
- month
-
Month month()
Get the month of this date.
- plus
-
@Operator
Date plus(Duration days)Add the specified number of days to this date to get a date in the future. Throw ArgErr if
days
parameter is not a whole number of days (must be evenly divisible by 24hr).Example:
Date(2008, Month.feb, 28) + 2day => 2008-03-01
- toCode
-
Str toCode()
Get this Date as a Fantom expression suitable for code generation.
- toDateTime
-
DateTime toDateTime(Time t, TimeZone tz := TimeZone.cur())
Combine this Date with the given Time to return a DateTime.
- toIso
-
Str toIso()
Format this instance according to ISO 8601 using the pattern:
YYYY-MM-DD
- toLocale
-
Str toLocale(Str? pattern := null, Locale locale := Locale.cur())
Format this date according to the specified pattern. If pattern is null, then a localized default is used. The pattern format is the same as
DateTime.toLocale
:YY Two digit year 07 YYYY Four digit year 2007 M One/two digit month 6, 11 MM Two digit month 06, 11 MMM Three letter abbr month Jun, Nov MMMM Full month June, November D One/two digit day 5, 28 DD Two digit day 05, 28 DDD Day with suffix 1st, 2nd, 3rd, 24th WWW Three letter abbr weekday Tue WWWW Full weekday Tuesday Q Quarter number 3 QQQ Quarter with suffix 3rd QQQQ Quarter spelled out 3rd Quarter 'xyz' Literal characters
- toStr
-
virtual override Str toStr()
Return programmatic ISO 8601 string encoding formatted as follows:
YYYY-MM-DD 2009-01-10
- today
-
static Date today(TimeZone tz := TimeZone.cur())
Get today's Date using specified timezone.
- tomorrow
-
static Date tomorrow(TimeZone tz := TimeZone.cur())
Get tomorrow's Date using specified timezone.
- weekOfYear
-
Int weekOfYear(Weekday startOfWeek := Weekday.localeStartOfWeek())
Return the week number of the year as a number between 1 and 53 using the given weekday as the start of the week (defaults to current locale).
- weekday
-
Weekday weekday()
Get the day of the week for this date.
- year
-
Int year()
Get the year as a number such as 2009.
- yesterday
-
static Date yesterday(TimeZone tz := TimeZone.cur())
Get yesterday's Date using specified timezone.