Fan

 

const final class

sys::Time

sys::Obj
  sys::Time

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

Slots

compareSource

override Int compare(Obj obj)

Overrides sys::Obj.compare

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

defValSource

static Time defVal

Default value is "00:00:00".

equalsSource

override Bool equals(Obj? that)

Overrides sys::Obj.equals

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

fromDurationSource

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
fromIsoSource

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

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.

fromStrSource

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

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.

hashSource

override Int hash()

Overrides sys::Obj.hash

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

hourSource

Int hour()

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

makeSource

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

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.

minSource

Int min()

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

nanoSecSource

Int nanoSec()

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

nowSource

static Time now()

Get the current time using the default timezone. Convenience for:

DateTime.now.time
secSource

Int sec()

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

toCodeSource

Str toCode()

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

toDateTimeSource

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

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

toDurationSource

Duration toDuration()

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

Example:

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

Str toIso()

Format this instance according to ISO 8601 using the pattern:

hh:mm:ss.FFFFFFFFF

Also see fromIso and toStr.

toLocaleSource

Str toLocale(Str? pattern := null)

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
f*     Fractional secs trailing zeros
F*     Fractional secs no trailing zeros
a      AM/PM marker               AM, PM
'xyz'  Literal characters

A symbol immediately preceding a "F" pattern with a no fraction to print is skipped.

toStrSource

override Str toStr()

Overrides sys::Obj.toStr

Return programmatic ISO 8601 string encoding formatted as follows:

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

Also see fromStr, toIso, and toLocale.