1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
The purpose of this library was to replace our dependence on Unix
epoch time, which, being limited to a range of about 1970 to 2030,
is inadequate for our purposes (we have data as old as 1870). This
date library effectively handles dates from A.D. 1000 to infinity,
and would probably work all the way back to 0 (ignoring, of course,
the switch-over to the Gregorian calendar). The useful features of
Unix epoch time (ease of date difference calculation and date
comparison, strict ordering) are preserved, and elements such as
human-legibility are added. The library handles fractional seconds
and some date/time manipulations used for the Global Positioning
Satellite system.
The operators +/-, <=>, cmp, stringify are overloaded. Addition
handles seconds and fractions of seconds, subtraction handles
seconds or date differences, compares work, and stringification
returns the a representation of the date.
The US Geological Survey (USGS) likes midnight to be 24:00:00 of
the previous day, not 00:00:00 of the day people expect. If
$DateTime::Precise::USGSMidnight is set, dprintf will always print
midnight as 24:00:00 and the date returned from dprintf will have
the previous day's date. Regardless, time is always stored internally
as 00:00:00.
|