new( ... )
Constructor of the formatter/parser object. It can take the
following parameters: "epoch", "unit",
"type", "skip_leap_seconds", "start_at",
"local_epoch" and "dhms".
The epoch parameter is the only required parameter. It should
be a DateTime object (or at least, it has to be convertible to a
DateTime object). This datetime is the starting point of the day count,
and is usually numbered 0. If you want to start at a different value,
you can use the start_at parameter.
The unit parameter can be "seconds",
"milliseconds, "microseconds" or "nanoseconds".
The default is "seconds". If you need any other unit, you must
specify the number of units per second. If you specify a number of units
per second below 1, the unit will be longer than a second. In this way,
you can count days: unit => 1/86_400.
The type parameter specifies the type of the return value. It
can be "int" (returns integer value), "float"
(returns floating point value), or "bigint" (returns
Math::BigInt value). The default is either "int" (if the unit
is "seconds"), or "bigint" (if the unit is
nanoseconds).
The default behaviour of this module is to skip leap seconds.
This is what (most versions of?) UNIX do. If you want to include leap
seconds, set skip_leap_seconds to false.
Some operating systems use an epoch defined in the local
timezone of the computer. If you want to use such an epoch in this
module, you have two options. The first is to submit a DateTime object
with the appropriate timezone. The second option is to set the
local_epoch parameter to a true value. In this case, you should submit
an epoch with a floating timezone. The exact epoch used in
"format_datetime" will then depend on
the timezone of the object you pass to
"format_datetime".
Most often, the time since an epoch is given in seconds. In
some circumstances however it is expressed as a number of days, hours,
minutes and seconds. This is done by NASA, for the so called Mission
Elapsed Time. For example, 2/03:45:18 MET means it has been 2 days, 3
hours, 45 minutes, and 18 seconds since liftoff. If you set the dhms
parameter to true, format_datetime returns a four element list,
containing the number of days, hours, minutes and seconds, and
parse_datetime accepts the same four element list.