Pick a UTC date and time and the calculator returns its Julian Day (JD) — the continuous count of days since noon UTC on January 1, 4713 BC. Astronomers, satellite operators, and historians use JD because it skips the calendar mess: there are no months, no leap years, no time zones, just a single floating-point number that increases by 1 per day. The famous J2000.0 epoch is JD 2451545.0 (noon UTC, January 1, 2000). The Unix epoch is JD 2440587.5 (midnight UTC, January 1, 1970). For the day-of-year-within-calendar-year, see day of year; for the related ordinal-date format, see ordinal date.
Common use cases
- Cross-referencing astronomical observations. Telescope observations are timestamped with JD because it lets you compute time differences without worrying about month lengths, leap years, or time zones. The interval between two observations is just a subtraction. If your data uses Modified Julian Day (MJD), add 2400000.5 to convert to standard JD.
- Computing planetary positions. Most ephemeris formulas (lunar position, planetary motion, equinox detection) take Julian Day as input. Look up JD for your target moment, then plug into the formula. The number is unambiguous about century, leap-year, and time-zone — much safer than passing around a calendar date.
- Verifying satellite or GPS time stamps. Some satellite metadata uses JD for the observation epoch (TLEs use a related but different form). Convert between JD and your familiar UTC calendar date here when debugging an observation that "happened on the wrong day".
- Historical date calculations. How many days are between Caesar's assassination (March 15, 44 BC, Julian calendar) and the moon landing (July 20, 1969)? Convert each to JD via this calculator (use proleptic Julian conversion separately for pre-1582 dates) and subtract. JD bridges across calendar reforms, leap-year rule changes, and BC/AD boundary.
How it works
Julian Day at any UTC instant is computed from the Unix timestamp: JD = (utc_milliseconds / 86_400_000) + 2440587.5. The constant 2440587.5 is the JD at the Unix epoch (1970-01-01T00:00:00Z). The 0.5 reflects that JD days start at noon UTC, while the Unix epoch starts at midnight. Each day is exactly 86,400,000 ms. The formula is exact for any post-1970 UTC date and stays accurate for pre-1970 dates as long as the JS Date object can represent them (range is ~±100,000 years).
Worked examples
J2000.0 epoch
Enter 2000-01-01 12:00 UTC.
Result: Julian Day 2451545.0
The defining epoch for modern astronomy. Used as the reference time for the ICRS coordinate frame and for almost every modern ephemeris. Note the .0 — it falls exactly on a Julian Day boundary because JD days start at noon.
Unix epoch
Enter 1970-01-01 00:00 UTC.
Result: Julian Day 2440587.5
The .5 reflects that the Unix epoch starts at midnight UTC, which is half a JD day past the previous noon-anchored boundary. This is why JD-to-Unix conversion uses 2440587.5 as the additive constant.
A round day past J2000
Enter 2026-04-27 12:00 UTC.
Result: Julian Day 2461158.0
Exactly 9613 days after J2000.0. JD increases by 1 per day, so day-counting is just subtraction.
Edge cases & gotchas
- JD days start at noon UTC, not midnight. A common bug: midnight UTC of a calendar date is JD x.5, not JD x. If you want "the JD for today" treating today as a calendar date, the typical convention is to take the JD at noon UTC of that date. The calculator returns the precise floating-point JD, so you see the .5 explicitly.
- Modified Julian Day (MJD) is different by 2400000.5. MJD = JD - 2400000.5. The MJD epoch is midnight UTC, November 17, 1858. MJD is more compact (5 digits for current dates instead of 7) and starts at midnight, which matches most software conventions. Convert by subtracting; some tools require MJD specifically (e.g. VLBI metadata).
- Leap seconds are NOT included in JD. JD assumes a uniform 86,400-second day. Leap seconds (the occasional extra second inserted into UTC to keep clock time aligned with Earth's rotation) are not reflected. For sub-second precision in astronomy work, use Terrestrial Time (TT) or TAI — both monotonic and leap-second-free.
- Years before AD 1 use astronomical year numbering. JD treats year 0 as 1 BC, year -1 as 2 BC, etc. (astronomical year numbering, no skip). Historians traditionally write 1 BC, AD 1 with no year zero between them. Don't mix the two conventions; for ancient dates, work in JD or astronomical year throughout.
Frequently asked questions about Julian Day Calculator
Is Julian Day the same as Julian Date?
In modern astronomical usage they're synonymous. "Julian Day" emphasizes the integer day count; "Julian Date" emphasizes the floating-point fractional time of day. Both refer to the same continuous count from 4713 BC noon UTC.
How do I convert JD back to a calendar date?
Reverse the formula: utc_ms = (JD - 2440587.5) × 86_400_000. Then construct a JavaScript Date from the milliseconds. This calculator does the JD-to-calendar direction; for the reverse, just enter the calendar date and confirm by inverting.
What's the difference from "Julian calendar" date?
Confusing terminology. Julian Day is a continuous day count, used in astronomy. Julian calendar is the pre-Gregorian civil calendar with leap years every 4 years (no exceptions), used in Europe before 1582 and in Russia until 1918. The two are unrelated despite the shared name.
Why does JD start in 4713 BC?
Joseph Scaliger picked 4713 BC in 1583 as a starting point that predates all known historical dates and is the synchronization point of three astronomical cycles (the 19-year Metonic cycle, the 28-year solar cycle, and the 15-year Roman indiction). Practical astronomers don't care about the original motivation; they just use JD as a uniform day counter.
How precise is the calculator?
Limited by JavaScript Date precision: millisecond resolution, which is about 1.16e-8 of a JD day. Effectively perfect for any practical purpose. The internal arithmetic is double-precision floating-point; you may see the last digit fluctuate by ±1 in rounding.
Should I use JD or MJD in my software?
MJD if you only care about post-1858 dates and you want shorter integers. JD if you cross historical/astronomical boundaries or interface with older astronomy code. Both are easy to convert; pick one and document the choice in your data.
Glossary
- Julian Day (JD)
- Continuous count of days since noon UTC on January 1, 4713 BC (proleptic Julian calendar). Standard time reference in astronomy. Floating-point; one day = 86,400 seconds.
- Modified Julian Day (MJD)
- JD minus 2400000.5. Epoch is midnight UTC on November 17, 1858. Shorter (5 digits for current dates) and starts at midnight, matching most software conventions.
- J2000.0
- The standard astronomical epoch JD 2451545.0 = noon UTC on January 1, 2000. Reference time for the ICRS coordinate frame and most modern ephemerides.
- Astronomical year numbering
- Continuous integer year count where year 0 = 1 BC, year -1 = 2 BC, etc. Differs from historical numbering (which skips year 0). Used internally by JD calculations.
- Leap second
- An occasional extra second inserted into UTC to keep clock time synchronized with Earth's rotation. JD assumes uniform 86,400-second days; leap seconds are not reflected.