Mirage_ptimeSourceinclude module type of struct include Ptime_clock endnow () is the current POSIX time, by definition always on the UTC timeline.
Raises Sys_error, see error handling.
period () is a positive POSIX time span representing the clock's period (if available).
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.
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].
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.
clock_gettime with CLOCK_REALTIME.gettimeofday is used.GetSystemTime and GetTimeZoneInformation are used.Date.now () and Date.prototype.getTimezoneOffset are used.