struct const class std::TimeOfDay

sys::Obj
  std::TimeOfDay

@Serializable { simple=true }

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

compare

virtual override Int compare(Obj obj)

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

defVal

const static TimeOfDay defVal := TimeOfDay.fromTicks(0)

Default value is "00:00:00".

equals

virtual override Bool equals(Obj? that)

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

fromDuration

static TimeOfDay 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
fromIso

static TimeOfDay? 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.

fromLocale

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

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)

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.

fromTicks

new fromTicks(Int ticks)

hash

virtual override Int hash()

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

hour

Int hour()

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

isMidnight

Bool isMidnight()

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

make

new 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.

min

Int min()

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

minus

@Operator
TimeOfDay minus(Duration d)

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()

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

now

static TimeOfDay now(TimeZone tz := TimeZone.cur())

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

plus

@Operator
TimeOfDay plus(Duration d)

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()

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

toCode

Str toCode()

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

toDateTime

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

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

toDuration

Duration toDuration()

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

Example:

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

Str toIso()

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())

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()

Return programmatic ISO 8601 string encoding formatted as follows:

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

Also see fromStr, toIso, and toLocale.