Developer & Office Tool
Convert between a real calendar date and the serial number Excel and Google Sheets actually store behind the scenes.
Every date in Excel and Google Sheets is stored internally as a plain number — the count of days since a fixed reference point — and only displayed as a date because of cell formatting. Under the default "1900 date system," serial number 1 represents January 1, 1900, and each whole number after that is one more day. The time of day, if any, is stored as the decimal fraction of that day.
Excel's 1900 system has a well-known quirk inherited from Lotus 1-2-3 for backward compatibility: it treats 1900 as a leap year and includes a phantom February 29, 1900 that never actually existed. This only affects serial numbers 1–59 (January and February 1900) — every date from March 1, 1900 onward is unaffected and converts correctly, which covers essentially all real-world spreadsheet dates. Older Mac versions of Excel used a different "1904 system" that avoids this bug entirely but starts counting from January 1, 1904 instead, which is why the same date can show two different serial numbers depending on which system a file was created in.
This conversion matters most when a date arrives as a raw number from a CSV export, an API response, or a spreadsheet formula gone wrong — a cell showing "44927" instead of a date almost always means the number format was lost, not that the underlying value is broken.
Related
Need .NET ticks, GPS time, or Mac HFS+ instead? One tool for all of them.
Convert between common written date formats.
How real databases represent dates, for comparison.