Spreadsheet dates
Excel Date Converter
Excel serial numbers ↔ calendar dates (1900 date system).
Excel serial converter
Paste a serial or pick a calendar date.
Excel stores dates as serial numbers — day counts from a fixed epoch — so a cell that shows 45292 without date formatting looks meaningless until you decode it. This Excel date converter turns serial values into calendar dates and encodes calendar dates back into serial form for formulas, CSV imports, and migrations. It targets the common Windows 1900 date system used by Excel for Windows and Google Sheets, with notes on the Mac 1904 system where behavior differs.
When to use an Excel date converter
Use this page when a CSV export, database dump, or API payload contains integers that were dates in a spreadsheet. Analysts paste serials from pivot extracts. Developers map spreadsheet columns into SQL DATE fields. Finance teams reconcile ledger dates that arrived as numbers after a broken paste. If you need Unix epoch seconds instead of Excel serials, open the Unix timestamp tool. Windows FILETIME ticks belong on the FILETIME converter.
ISO strings belong on the ISO 8601 converter when your pipeline expects sortable text rather than day integers. The converter is also useful when teaching how spreadsheets think about time: a date is a day number, and a time of day is a fractional part of that day.
How Excel serial dates work
In the 1900 date system, serial 1 corresponds to January 1, 1900. Excel historically treated 1900 as a leap year (it was not), which inserts a phantom day at serial 60. Modern converters usually preserve Excel’s numbering so that values match what you see in cells. Serials can include a fraction: 0.5 is noon on that day. Whole numbers represent midnight at the start of the civil date in Excel’s model.
The 1904 date system (classic Excel for Mac) uses a different epoch. If your workbook was created under 1904 rules, the same integer maps to a different calendar day. Always confirm which system the file uses before bulk converting. Google Sheets generally follows the 1900 system for compatibility with shared workbooks.
How to use this page
Paste a serial number into the value field to decode a calendar date, or pick a calendar date to encode a serial. Press calculate and read both the human date and the serial form. Use the result in formulas, documentation, or migration scripts. Ordinary conversions stay in your browser without uploading sensitive ledger data.
When importing CSVs, prefer writing real ISO dates into the destination system rather than keeping opaque serials. Serials are convenient inside Excel; they are brittle across languages and libraries that disagree about the 1900 leap quirk or epoch choice.
Edge cases and pitfalls
Negative serials and very large integers may fall outside everyday spreadsheet ranges — treat them carefully. Time zones are not stored in a plain Excel date serial; a date in Excel is a civil day without a zone. If your pipeline needs an instant in time, store ISO 8601 with an offset or convert via Unix time after you decide a zone.
Copy-paste from Excel into plain text sometimes changes formatting and drops leading zeros or switches locales. Re-check a known anchor date after conversion. For day-of-year logistics codes (YYDDD), use the ordinal date tool rather than Excel serials.
Worked example
A partner sends a column of integers: 46023, 46024, 46025. Decode the first value here, confirm it matches the date they described in email, then batch-convert the rest in a script using the same epoch rules. If one value is off by two days, suspect a 1900 versus 1904 mismatch or a timezone midnight shift applied incorrectly upstream.
You need to seed a spreadsheet formula that adds ninety days to a start date. Encode the start date to a serial, add ninety in Excel, or use the date calculator for calendar arithmetic without serial math. For planning around 2026, pair results with monthly calendars or the yearly calendar 2026.
Migration and audit practices
When moving from Sheets to a database, convert serials to ISO dates in a staging column and validate min/max ranges. Watch for empty cells that became zeros during export. Document whether times were stored as fractions. Keep a sample workbook with known answers as a regression fixture for your ETL jobs.
For Active Directory or Windows API timestamps that look like huge 18-digit integers, switch to FILETIME or LDAP converters. Mixing those formats with Excel day counts is a frequent support ticket. Label every raw integer with its epoch and unit in tickets so the next engineer does not guess.
Google Sheets and cross-platform exports
Google Sheets generally stores dates as serials compatible with the 1900 system, but locale settings can change how pasted text displays without changing the underlying number. After export to CSV, open the file in a plain-text editor before assuming commas and slashes reflect the true stored value. European CSVs may show day-first dates while the serial underneath still follows the workbook’s epoch rules.
When collaborators mix Mac and Windows Excel versions, confirm the 1904 flag once per workbook lineage. A two-day shift across an entire column is the classic symptom of epoch mismatch rather than timezone error. Document the confirmed epoch in your data dictionary so Python, R, and SQL loaders apply the same conversion function.
Finance, HR, and audit trails
Payroll and GL extracts sometimes emit serials instead of ISO dates because the upstream report ran inside Excel. Decode a known pay date here before signing off on accrual journals. HR tenure files exported from legacy systems may intermix serial hire dates with text term dates — normalize both through the same epoch before merging in a warehouse.
Auditors asking for evidence of date integrity should keep a screenshot of this decode beside the raw integer in the workpaper. Round-trip encode the calendar date you expect and confirm the serial matches the source cell. That one-minute check prevents multi-day variances from propagating into regulatory filings.
Scripting and library parity
Python pandas, JavaScript spreadsheets, and .NET all expose Excel serial helpers with slightly different defaults for the 1900 leap bug. Use this page as an independent reference when unit tests disagree. Store test vectors as serial plus expected ISO pairs in your repository rather than only ISO strings, so epoch regressions surface immediately in CI.
When a library returns a datetime with a timezone attached to a value that was date-only in Excel, strip the zone before comparing civil days. Excel date serials never implied UTC unless the workbook also stored explicit time fractions tied to a zone policy your pipeline must document separately.
Related tools
Stay on the converters hub for Unix, FILETIME, ISO 8601, cron, and cultural calendars. Civil day math without serials lives on the date tools hub. Clocks and work hours: time tools hub.
Frequently asked questions
What Excel date system does this converter use?
By default it follows the 1900 date system used by Excel for Windows and Google Sheets, where serial 1 is January 1, 1900. If your Mac workbook uses the 1904 system, the same integer maps to a different day — confirm the workbook setting before bulk conversion.
Can Excel serials include time of day?
Yes. The integer part is the civil date and the fractional part is time within that day. One half equals noon. Whole numbers represent midnight at the start of the date in Excel’s model, not a time zone instant unless you add zone rules separately.
Why does serial 60 matter in Excel?
Excel incorrectly treats 1900 as a leap year, inserting a phantom February 29 at serial 60. Converters that match Excel must preserve that quirk so decoded dates align with what users see in cells rather than strict astronomical calendars. Spreadsheet parity depends on preserving that quirk rather than correcting history to real astronomy.
How is this different from Unix timestamps?
Unix time counts seconds since January 1, 1970 UTC. Excel serials count days from 1900 or 1904 without an inherent time zone. Use the Unix timestamp tool when logs or APIs store epoch seconds instead of spreadsheet day numbers. Never mix the two formats in one column without an explicit epoch label in your schema.
Does conversion upload my data?
Ordinary use runs entirely in your browser. Paste serials or pick dates locally without sending values to a server, which makes the page suitable for quick checks on exports that contain sensitive financial or HR dates. That design keeps quick checks suitable for exports that contain sensitive ledger or HR dates.
What should I store in a database instead of serials?
Prefer ISO 8601 date or datetime strings with an explicit offset, or native DATE and TIMESTAMP columns. Serials are spreadsheet-internal; exporting them without context forces every downstream system to guess epoch and leap-year rules. Downstream ETL jobs then inherit one clear contract instead of guessing workbook internals.