The datetime module implements the common international "Gregorian" chronology,
based on the astronomically numbered proleptic Gregorian calendar, as per ISO
8601, and the common 24 hour clock. It provides [[datetime]], a representation
of civil date/time and an extension of the [[time::chrono::moment]] type,
optimized for dealing with the Gregorian chronology.

The [[time::chrono]] module has many useful functions which interoperate with
datetimes. Any [[time::chrono]] function which accepts *moment also accepts
*datetime.

Datetimes are created with [[new]], [[now]], or one of the "from_" functions.
Alternatively, use the [[virtual]] interface to construct a datetime.

The [[virtual]] interface, coupled with the [[realize]] function, provides a way
to handle uncertain or invalid datetime information intermediately, transform
date/time values with arithmetic, [[parse]] date/time strings, and construct new
datetimes safely.

The "observe" functions accept a *datetime and evaluates one of its observed
chronological values. This includes [[year]], [[month]], [[day]], [[hour]] etc.

[[datetime]]s may be localized to different [[time::chrono::locality]]s via the
[[in]] function. The "observe" functions will evaluate the correct values
accordingly. You'll find a standard selection of world timezones in the
[[time::chrono]] module.

See [[parse]] and [[format]] for working with date/time strings.

Timescale-wise datetime arithmetic using the [[time::duration]] type is possible,
with [[add]] and [[time::chrono::diff]].

Chronology-wise datetime arithmetic using the [[period]] type is possible, with
[[reckon]] and the [[calculus]] type, [[pdiff]], [[unitdiff]], and [[truncate]].
Note that chronological and calendrical arithmetic is highly irregular due to
overflows and timezone discontinuities, so think carefully about what you want.
