package mirage-ptime
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=d553560468d5b94db25b05738c2499f290ee66b14ac22b4302e667f1fa443471
sha512=b7de3bf598e3ec36b3646633a0244589b75ab12e4ddcf5f964e98e639933ba815ea813a6a3eb6bfc849af7a346f2be3dbd3b0047d825f9dfe0a4c6ffed8e8fce
doc/mirage-ptime.unix/Mirage_ptime/index.html
Module Mirage_ptime
Source
include module type of struct include Ptime_clock end
POSIX clock
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).
System time zone offset
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.
POSIX clock raw interface
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
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
].
Error handling
The functions now
and 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.
Platform support
- Platforms with a POSIX clock (includes Linux) use
clock_gettime
withCLOCK_REALTIME
. - On Darwin
gettimeofday
is used. - On Windows
GetSystemTime
andGetTimeZoneInformation
are used. - On JavaScript
Date.now ()
andDate.prototype.getTimezoneOffset
are used.