module Ptime_clock:sig
..end
POSIX time clock.
Ptime_clock
provides access to a system POSIX time clock and to
the system's current time zone offset.
This time does not increase monotically and is subject to system
calendar time adjustments. Use Mtime
if you need monotonic
wall-clock time to measure time spans.
Consult important information about error handling and platform support.
val now : unit -> Ptime.t
now ()
is the current POSIX time, by definition always on the
UTC timeline.
Raises Sys_error
, see error handling.
val period : unit -> Ptime.span option
period ()
is a positive POSIX time span representing
the clock's period (if available).
val current_tz_offset_s : unit -> Ptime.tz_offset_s option
current_tz_offset_s ()
is the system's current local time zone
offset to UTC in seconds, if known. This is the duration local
time - UTC time in seconds.
val now_d_ps : unit -> int * int64
now_d_ps ()
is (d, ps)
representing POSIX time occuring at
d
* 86'400e12 + ps
POSIX picoseconds from the epoch
1970-01-01 00:00:00 UTC. ps
is in the range
[0
;86_399_999_999_999_999L
].
Raises Sys_error
, see error handling
val period_d_ps : unit -> (int * int64) option
period_d_ps ()
is if available Some (d, ps)
representing the
clock's picosecond period d
* 86'400e12 + ps
. ps
is in the
range [0
;86_399_999_999_999_999L
].
The functions Ptime_clock.now
and Ptime_clock.now_d_ps
raise Sys_error
whenever
they can't determine the current time or that it doesn't fit in
Ptime
's well-defined range. This exception should
only be catched at the toplevel of your program to log it and
abort the program. It indicates a serious error condition in the
system.
All the other functions, whose functionality is less essential,
simply silently return None
if they can't determine the
information either because it is unavailable or because an error
occured.
clock_gettime
with CLOCK_REALTIME
.gettimeofday
is used.GetSystemTime
and
GetTimeZoneInformation
are used.Date.now ()
and
Date.prototype.getTimezoneOffset
are used.