SkySpark by SkyFoundry

const class sys::Time

sys::Obj
  sys::Time

@Serializable { simple=true }

Source

Time represents a time of day independent of a specific date or timezone.

compare

virtual override Int compare(Obj obj)

Source

Compare based on hour, min, sec, and ns values.

defVal

const static Time defVal

Source

Default value is "00:00:00".

equals

virtual override Bool equals(Obj? that)

Source

Two times are equal if have identical hour, min, sec, and ns values.

fromDuration

const static Time fromDuration(Duration d)

Source

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
fromIso

const static Time? fromIso(Str s, Bool checked := true)

Source

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

Also see toIso and fromStr.

fromLocale

const static Time? fromLocale(Str str, Str pattern, Bool checked := true)

Source

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.

fromStr

static new fromStr(Str s, Bool checked := true)

Source

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.

hash

virtual override Int hash()

Source

Return hash of hour, min, sec, and ns values.

hour

Int hour()

Source

Get the hour of the time as a number between 0 and 23.

isMidnight

Bool isMidnight()

Source

Return if "00:00:00" which is equal to defVal.

make

static new make(Int hour, Int min, Int sec := 0, Int ns := 0)

Source

Make for the specified time values:

  • hour: 0-23
  • min: 0-59
  • sec: 0-59
  • ns: 0-999_999_999

Throw ArgErr is any of the parameters are out of range.

min

Int min()

Source

Get the minutes of the time as a number between 0 and 59.

minus

@Operator
Time minus(Duration dur)

Source

Subtract the specified duration to this time. Throw ArgErr if dur is not between 0 and 24hr.

Example:

Time(5,0,0) - 30min  =>  04:30:00
nanoSec

Int nanoSec()

Source

Get the number of nanoseconds (the fraction of seconds) as a number between 0 and 999,999,999.

now

const static Time now(TimeZone tz := TimeZone.cur())

Source

Get the current time using the specified timezone. This method may use DateTime.now with the default tolerance 250ms.

plus

@Operator
Time plus(Duration dur)

Source

Add the specified duration to this time. Throw ArgErr if dur is not between 0 and 24hr.

Example:

Time(5,0,0) + 30min  =>  05:30:00
sec

Int sec()

Source

Get the whole seconds of the time as a number between 0 and 59.

toCode

Str toCode()

Source

Get this Time as a Fantom expression suitable for code generation.

toDateTime

DateTime toDateTime(Date d, TimeZone tz := TimeZone.cur())

Source

Combine this Time with the given Date to return a DateTime.

toDuration

Duration toDuration()

Source

Return the duration of time which has elapsed since midnight. See fromDuration.

Example:

Time(2, 30).toDuration  =>  150min
toIso

Str toIso()

Source

Format this instance according to ISO 8601 using the pattern:

hh:mm:ss.FFFFFFFFF

Also see fromIso and toStr.

toLocale

Str toLocale(Str? pattern := null, Locale locale := Locale.cur())

Source

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 a no fraction to print is skipped.

toStr

virtual override Str toStr()

Source

Return programmatic ISO 8601 string encoding formatted as follows:

hh:mm:ss.FFFFFFFFF
12:06:00.0

Also see fromStr, toIso, and toLocale.