COMMENT(!MOD!zsh/datetime
Some date/time commands and parameters.
!MOD!)
The tt(zsh/datetime) module makes available one builtin command:

startitem()
findex(strftime)
cindex(date string, printing)
xitem(tt(strftime) [ tt(-s) var(scalar) ] var(format) var(epochtime) )
item(tt(strftime) tt(-r) [ tt(-q) ] [ tt(-s) var(scalar) ] var(format) var(timestring) )(
Output the date denoted by var(epochtime) in the var(format)
specified.

With the option tt(-r) (reverse), use the format var(format) to parse the
input string var(timestring) and output the number of seconds since the
epoch at which the time occurred.  If no timezone is parsed, the current
timezone is used; other parameters are set to zero if not present.  If
var(timestring) does not match var(format) the command returns status 1; it
will additionally print an error message unless the option tt(-q) (quiet)
is given.  If var(timestring) matches var(format) but not all characters in
var(timestring) were used, the conversion succeeds; however, a warning is
issued unless the option tt(-q) is given.  The matching is implemented by
the system function tt(strptime); see manref(strptime)(3).  This means that
zsh format extensions are not available, however for reverse lookup they
are not required.  If the function is not implemented, the command returns
status 2 and (unless tt(-q) is given) prints a message.

If tt(-s) var(scalar) is given, assign the date string (or epoch time
in seconds if tt(-r) is given) to var(scalar) instead of printing it.
)
enditem()

The tt(zsh/datetime) module makes available several parameters;
all are readonly:

startitem()
vindex(EPOCHREALTIME)
item(tt(EPOCHREALTIME))(
A floating point value representing the number of seconds since
the epoch.  The notional accuracy is to nanoseconds if the
tt(clock_gettime) call is available and to microseconds otherwise,
but in practice the range of double precision floating point and
shell scheduling latencies may be significant effects.
)
vindex(EPOCHSECONDS)
item(tt(EPOCHSECONDS))(
An integer value representing the number of seconds since the
epoch.
)
vindex(epochtime)
item(tt(epochtime))(
An array value containing the number of seconds since the epoch
in the first element and the remainder of the time since the epoch
in nanoseconds in the second element.  To ensure the two elements
are consistent the array should be copied or otherwise referenced
as a single substitution before the values are used.  The following
idiom may be used:

example(for secs nsecs in $epochtime; do
  ...
done)

)
enditem()
