Module Time_Zone

module Time_Zone: sig .. end

Time zone management.

You can change the current time zone in your program by side effect.


type t = 
| UTC (*

Greenwich Meridian Time

*)
| Local (*

Local Time

*)
| UTC_Plus of int (*

Another time zone specified from UTC

*)

Type of a time zone.

val current : unit -> t

Return the current time zone. It is UTC before any change.

val change : t -> unit

Change the current time zone by another one. Raise Invalid_argument if the specified time zone is UTC_Plus x with x < -12 or x > 11

val gap : t -> t -> int

Return the gap between two time zone.

val from_gmt : unit -> int

from_gmt () is equivalent to gap UTC (current ()).

val to_gmt : unit -> int

to_gmt () is equivalent to gap (current ()) UTC.

val is_dst : unit -> bool

is_dst () checks if daylight saving time is in effect. Only relevant in local time. Returns alway false in another time zone.

val hour_of_dst : unit -> int

hour_of_dst () returns 1 if is_dst () and 0 otherwise.

val on : ('a -> 'b) -> t -> 'a -> 'b

on f tz x changes the time zone to tz, then computes f x, and finally reset the time zone to the initial one and returns the result of the computation.