DateTime::Format::Epoch::JD(3) Convert DateTimes to/from Julian Days


use DateTime::Format::Epoch::JD;
my $dt = DateTime::Format::Epoch::JD->parse_datetime( 2453244.5 );
# 2004-08-27T00:00:00
# 2453244.5
my $formatter = DateTime::Format::Epoch::JD->new();
my $dt2 = $formatter->parse_datetime( 2453244.5 );
# 2004-08-27T00:00:00
# 2453244.5


This module can convert a DateTime object (or any object that can be converted to a DateTime object) to the Julian Day number. This is the number of days since noon U.T.C. on January 1, 4713 B.C. (Julian calendar).

This time scale was originally proposed by John Herschel, and is often used in astronomical calculations.

Similar modules are:

  • DateTime::Format::Epoch::MJD

    Implements the ``modified Julian Day'', starting at midnight U.T.C., November 17, 1858. This number is always 2,400,000.5 lower than the JD, and this count only uses five digits to specify a date between 1859 and about 2130.

  • DateTime::Format::Epoch::RJD

    Implements the ``reduced Julian Day'', starting at noon U.T.C., November 16, 1858. This number is always 2,400,000 lower than the JD.

  • DateTime::Format::Epoch::TJD

    Implements the ``truncated Julian Day'', starting at midnight U.T.C., May 24, 1968. This number is always 2,440,000,5 lower than the JD. Actually, there is another version of the TJD, defined as JD modulo 10,000. But that one is a bit harder to implement, so you'll have to do with this version of TJD. Or don't use TJD's at all.

  • DateTime::Format::Epoch::RataDie

    Implements the Rata Die count, starting at January 1, 1 (Gregorian). This count is used by DateTime::Calendar programmers.

  • DateTime::Format::Epoch::Lilian

    Implements the Lilian count, named after Aloysius Lilian (a 16th century physician) and first used by IBM (a 19th century punched card machine manufacturer). This counts the number of days since the adoption of the Gregorian calendar. Only days are counted, and October 15, 1584 is day 1.


Most of the methods are the same as those in DateTime::Format::Epoch. The only difference is the constructor.
  • new()

    Constructor of the formatter/parser object. It has no parameters.


Support for this module is provided via the [email protected] email list. See for more details.


Eugene van der Pijll <[email protected]>


Copyright (c) 2004 Eugene van der Pijll. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.