Time
@Serializable { simple=true }
const class Time : Obj
Time represents a time of day independent of a specific date or timezone.
Parse the string into a Time from the programmatic encoding defined by toStr
Make for the specified time values
Default value is "00:00:00"
Return programmatic ISO 8601 string encoding formatted as follows
Subtract the specified duration to this time
Compare based on hour, min, sec, and ns values
Format this date according to the specified pattern
Parse a string into a Time using the given pattern
Get this Time as a Fantom expression suitable for code generation
Translate a duration of time which has elapsed since midnight into a Time of day
Get the number of nanoseconds (the fraction of seconds) as a number between 0 and 999,999,999
Parse an ISO 8601 time
Add the specified duration to this time
Return if "00:00:00" which is equal to defVal
Get the whole seconds of the time as a number between 0 and 59
Get the minutes of the time as a number between 0 and 59
Get the hour of the time as a number between 0 and 23
Two times are equal if have identical hour, min, sec, and ns values
Get the current time using the specified timezone
Format this instance according to ISO 8601 using the pattern
Return the duration of time which has elapsed since midnight
Return hash of hour, min, sec, and ns values
Combine this Time with the given Date to return a DateTime
virtual Int compare(Obj obj)
Compare based on hour, min, sec, and ns values.
const static Time : defVal
Default value is "00:00:00".
virtual Bool equals(Obj? that)
Two times are equal if have identical hour, min, sec, and ns values.
static Time fromDuration(Duration d)
Translate a duration of time which has elapsed since midnight into a Time of day. See toDuration. If the duration is not between 0 and 24hr throw ArgErr.
Example:
Time.fromDuration(150min) => 02:30:00
static Time? fromIso(Str s, Bool checked)
Parse an ISO 8601 time. If invalid format and checked is false return null, otherwise throw ParseErr. The following format is supported:
hh:mm:ss.FFFFFFFFF
static Time? fromLocale(Str str, Str pattern, Bool checked)
Parse a string into a Time 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.
static new fromStr(Str s, Bool checked)
Parse the string into a Time from the programmatic encoding defined by toStr. If the string cannot be parsed into a valid Time and checked is false then return null, otherwise throw ParseErr.
virtual Int hash()
Return hash of hour, min, sec, and ns values.
Int hour()
Get the hour of the time as a number between 0 and 23.
Bool isMidnight()
Return if "00:00:00" which is equal to defVal.
static new make(Int hour, Int min, Int sec, Int ns)
Make for the specified time values:
- hour: 0-23
- min: 0-59
- sec: 0-59
- ns: 0-999_999_999
Throw ArgErr if any of the parameters are out of range.
Int min()
Get the minutes of the time as a number between 0 and 59.
@Operator
Time minus(Duration dur)
Subtract the specified duration to this time. Throw ArgErr if dur is not between 0 and 24hr. Overflows will rollover.
Example:
Time(5,0,0) - 30min => 04:30:00
Int nanoSec()
Get the number of nanoseconds (the fraction of seconds) as a number between 0 and 999,999,999.
static Time now(TimeZone tz)
Get the current time using the specified timezone. This method may use DateTime.now with the default tolerance 250ms.
@Operator
Time plus(Duration dur)
Add the specified duration to this time. Throw ArgErr if dur is not between 0 and 24hr. Overflows will rollover.
Example:
Time(5,0,0) + 30min => 05:30:00
Int sec()
Get the whole seconds of the time as a number between 0 and 59.
Str toCode()
Get this Time as a Fantom expression suitable for code generation.
DateTime toDateTime(Date d, TimeZone tz)
Combine this Time with the given Date to return a DateTime.
Duration toDuration()
Return the duration of time which has elapsed since midnight. See fromDuration.
Example:
Time(2, 30).toDuration => 150min
Str toIso()
Format this instance according to ISO 8601 using the pattern:
hh:mm:ss.FFFFFFFFF
Str toLocale(Str? pattern, Locale locale)
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:
h One digit 24 hour (0-23) 3, 22 hh Two digit 24 hour (0-23) 03, 22 k One digit 12 hour (1-12) 3, 11 kk Two digit 12 hour (1-12) 03, 11 m One digit minutes (0-59) 4, 45 mm Two digit minutes (0-59) 04, 45 s One digit seconds (0-59) 4, 45 ss Two digit seconds (0-59) 04, 45 SS Optional seconds (only if non-zero) f* Fractional secs trailing zeros F* Fractional secs no trailing zeros a Lower case a/p for am/pm a, p aa Lower case am/pm am, pm A Upper case A/P for am/pm A, P AA Upper case AM/PM AM, PM 'xyz' Literal characters
A symbol immediately preceding a "F" pattern with no fraction to print is skipped.
virtual Str toStr()
Return programmatic ISO 8601 string encoding formatted as follows:
hh:mm:ss.FFFFFFFFF 12:06:00.0