How Excel stores dates as numbers
Behind the scenes a spreadsheet date is just a number. Excel counts days from an epoch, so 1 January 1900 is serial 1 in the default Windows system. The integer part is the day and any fractional part is the time of day. This tool converts in both directions and reproduces the quirks of Excel exactly, so the numbers it gives you match what the spreadsheet shows.
The 1900 leap-year bug: what it is and why it still matters
In 1900, Lotus 1-2-3 (the dominant spreadsheet of its day) contained a bug: it treated 1900 as a leap year, counting a phantom 29 February 1900 that never existed in the Gregorian calendar. When Microsoft built Excel, they deliberately preserved this bug to maintain compatibility with Lotus files. The bug has been in every version of Excel since, including Excel 365.
The practical consequence is that serial 60 in the 1900 system maps to the non-existent date 1900-02-29. Serials 1 through 59 map to dates in early 1900 in a way that is shifted by one relative to what you might expect, and serials 61 and above are unaffected and correct. This tool handles all three ranges correctly:
- Serials 1–59: dates from January and February 1900 (offset adjusted to match Excel’s internal count)
- Serial 60: the phantom leap day, flagged explicitly
- Serials 61 and above: standard day-count from the epoch, consistent with Excel
How it works
To convert a serial number to a date, the tool treats the value as days since 1899-12-30 in the 1900 system, an epoch chosen precisely so the count lines up with Excel for serial 61 and above. The tool reports that the value is the phantom leap day when you land on serial 60, and adjusts serials in the 1 to 59 range so dates in early 1900 round-trip correctly.
44197 -> 2021-01-01
44197.75 -> 2021-01-01 18:00:00
60 (1900) -> phantom 1900-02-29
The 1904 system counts from 1 January 1904 and has no leap-year bug, so its conversion is a straightforward day count from that epoch.
Common use cases for this converter
Debugging data imports. When a date column imports from a database or CSV as a raw integer (for example 45292), you need to know what date it corresponds to. This converter instantly gives you 2024-01-01.
Switching between 1900 and 1904 workbooks. A file created on an old Mac Excel may use the 1904 system. Dates will appear about four years off when opened in a Windows workbook. The 1904-system serial for a given date is exactly 1462 days less than the 1900-system serial.
Building or validating ETL pipelines. Data engineers writing code that reads or produces Excel files need to reproduce the same serial-date logic, including the leap-year offset, to avoid off-by-one errors on early-1900 dates.
Pick the date system that matches your workbook. A given calendar date has a different serial number in the 1900 and 1904 systems, and mixing them is a common source of dates that are off by about four years. The fractional part is the time of day: 0.5 is noon and 0.75 is 18:00.