Legend:
Library
Module
Module type
Parameter
Class
Class type
Pretty printing and parsing from string. In the following, an "event" is either a date or a time or a calendar.
This module implements different printers: one for each kind of events. The three printers have the same signature: they mainly implement a fprint : string -> formatter -> t -> unit function and a from_fstring : string -> string -> t function. The first one prints an event according to a format string (see below for a description of such a format). The second one converts a string to an event according to a format string.
A format string follows the unix utility 'date' (with few modifications). It is a string which contains two types of objects: plain characters and conversion specifiers. Those specifiers are introduced by a % character and their meanings are:
%%: a literal %
%a: short day name (by using a short version of day_name)
%A: day name (by using day_name)
%b: short month name (by using a short version of month_name)
%B: month name (by using month_name)
%c: shortcut for %a %b %d %H:%M:%S %Y
%C: century: as %Y without the two last digits (since version 2.01)
%d: day of month (01..31)
%D: shortcut for %m/%d/%y
%e: same as %_d
%F: shortcut for %Y-%m-%d: ISO-8601 notation (since version 2.01)
%h: same as %b
%H: hour (00..23)
%I: hour (01..12)
%i: same as %F; deprecated since 2.01
%j: day of year (001..366)
%k: same as %_H
%l: same as %_I
%m: month (01..12)
%M: minute (00..59)
%n: a newline (same as \n)
%p: AM or PM
%P: am or pm (same as %p in lowercase) (since version 2.01)
%r: shortcut for %I:%M:%S %p
%R: shortcut for %H:%M (since version 2.01)
%s: number of seconds since 1970/1/1 (since version 2.01)
%S: second (00..60)
%t: a horizontal tab (same as \t)
%T: shortcut for %H:%M:%S
%V: week number of year (01..53)
%w: day of week (1..7)
%W: same as %V
%y: last two digits of year (00..99)
%Y: year (four digits)
%z: time zone in the form +hhmm (e.g. -0400) (since version 2.01)
%:z: time zone in the form +hh:mm (e.g. -04:00) (since version 2.01)
%::z: time zone in the form +hh:mm:ss (e.g. -04:00:00) (since version 2.01)
%:::z: time zone in the form +hh (e.g. -04) (since version 2.01)
By default, date pads numeric fields with zeroes. Two special modifiers between `%' and a numeric directive are recognized:
'-' (hyphen): do not pad the field
'_' (underscore): pad the field with spaces
'0' (zero): pad the field with zeroes (default) (since version 2.01)
'^': use uppercase if possible (since version 2.01) Padding is only available for printers, not for parsers.
@example a possible output of %D is 01/06/03 @example a possible output of the date is %B, the %-dth is the date is January, the 6th is matched by ; @example a possible output of %c is Thu Sep 18 14:10:51 2003.
since 1.05
Internationalization
You can manage the string representations of days and months. By default, the English names are used but you can change their by setting the references day_name and month_name.
@example day_name := function Date.Mon -> "lundi" | Date.Tue -> "mardi" |
Date.Wed -> "mercredi" | Date.Thu -> "jeudi" | Date.Fri -> "vendredi" |
Date.Sat -> "samedi" | Date.Sun -> "dimanche" sets the names of the days to the French names.
Ftime printer. Seconds are rounded to integers before pretty printing. Specifiers which use date functionalities are not available on this printer. Default format is %T.