ConvertiloConvertilo

Excel Date Converter

Convert Excel date serial numbers to real dates and back. Turn 44561 into 2022-01-31 in your browser — no Excel required. Handles the 1900 leap-year bug.

Days since 1900-01-00; the fractional part is time of day. Today's value is around 46000.
📘
Excel auto-converting your numbers to dates?

Read our guide: how to stop Excel and Google Sheets from turning numbers into dates without your permission.

Open guide →

About the Excel date format

Excel stores every date as a serial number — an integer counting days since January 1, 1900. So 1 = 1900-01-01, 44561 = 2022-01-31, and today's value lives around 46000. The fractional part of the number encodes time of day: 0.0 = midnight, 0.25 = 06:00, 0.5 = 12:00, 0.75 = 18:00. A cell that displays "31-Jan-2022" still holds the bare number 44561 underneath; the Excel date format is purely a display mask on top of that integer. This converter takes either side of the equation and gives you the other one, so you can decode a stripped-down CSV, parse a database export that lost its formatting, or reverse-engineer an Excel-style timestamp that landed in your JSON — without re-opening Excel at all.

There are two Excel epochs to know about. The default Windows system is 1900-based; old Mac versions of Excel used a 1904-based system (1.0 = 1904-01-01), and the offset between them is exactly 1462 days. The fractional component is the time-of-day expressed as a share of 24 hours, so 44561.5 means 2022-01-31 at 12:00, and 44561.75 is 18:00. Practical use: someone hands you a column of numbers like 45000 to 45500 and asks for ISO dates — paste them here and copy the answers back into your spreadsheet, JSON payload, or database query.

All conversion runs in your browser using plain JavaScript. We don't upload anything, we don't store anything, and we don't need to know what's in your spreadsheet to give you the right answer.

When you'll need this converter

CSV shows a number instead of a date

You exported from Excel or Google Sheets and got 45245.5 in your CSV instead of a proper date. Paste it here — get the regular YYYY-MM-DD date back, ready to use anywhere.

Importing into Python or pandas

When you load an xlsx via pandas, dates sometimes come through as floats. Use this converter to verify a specific value before wiring up pd.to_datetime(..., unit='D', origin='1899-12-30').

Migrating a table to SQL

If your source stores dates as Excel serial numbers but the SQL table expects a timestamp, you need conversion. The converter outputs a Unix timestamp ready to paste into your INSERT query.

Building a report formula

Writing a SUMIFS or a date-range filter and need the Excel serial of a specific calendar date? Flip to "Date → serial number" and copy the integer straight into the formula.

Frequently asked questions

How does Excel represent dates as numbers?

Excel stores each date as a serial number — the count of days elapsed since January 1, 1900. So 1 = 1900-01-01, 367 = 1901-01-01 (Excel mistakenly includes a Feb 29, 1900), and 44561 = 2022-01-31. The fractional part encodes time of day: 0.5 = noon, 0.25 = 06:00. When a cell displays a date, the underlying value is still that bare number — the date format is a display mask on top. That's why a CSV export can hand you 45245.5 instead of a readable date.

What does the number 44561 mean as a date?

44561 is the Excel serial number for January 31, 2022. It represents the number of days since the Excel epoch (1900-01-00, with the famous Lotus 1-2-3 leap-year bug preserved). Add a fractional part for time of day: 44561.5 = 2022-01-31 12:00, 44561.75 = 2022-01-31 18:00. Paste the number into the converter above and you'll see the ISO date instantly.

How do I stop Excel from auto-converting numbers to dates?

Pre-format the column as Text BEFORE pasting your data. In Excel: select the column → right-click → Format Cells → Text → OK, then paste. For one-off entries you can prefix the value with a single apostrophe (e.g. '001234) and Excel will treat it as text. In Google Sheets: Format → Number → Plain text on the column first, then paste. We cover five more tricks (including Power Query and the CSV import wizard) in our guide linked above.

Why is Excel's date 1.0 = 1900-01-01 not 1900-01-02?

Backward compatibility with Lotus 1-2-3. The original Lotus spreadsheet treated 1900 as a leap year (it isn't — the Gregorian rule says years divisible by 100 are leap only if also divisible by 400). Microsoft kept the bug so that serial numbers would line up exactly with Lotus files. As a result, Excel has a phantom day 60 = February 29, 1900, and every date after March 1, 1900 is internally offset by one day from a clean Gregorian count. It only matters for pre-March-1900 historical data.

What are the Mac vs Windows Excel date systems?

Windows Excel uses the 1900 date system (1.0 = 1900-01-01). Old Mac versions of Excel used the 1904 date system (1.0 = 1904-01-01). The offset between them is exactly 1462 days. To convert a 1904-based number to the modern 1900-based one, add 1462. Modern Mac Excel defaults to the 1900 system, but the option to switch is still under File → Options → Advanced → "Use 1904 date system" — and the gotcha lives on whenever you open an older workbook saved in the Mac format.

How do I convert an Excel timestamp with a time component?

The fractional part of the serial number is the time of day as a share of 24 hours. So 44561.5 means 2022-01-31 at 12:00, 44561.25 is 06:00, and 44561.75 is 18:00. The math: hours = fractional × 24, minutes = (hours mod 1) × 60, seconds = (minutes mod 1) × 60. The converter above does all of this for you — paste a value like 44561.5208 and you'll see both the ISO date and the local time.

How do I convert a Unix timestamp to Excel?

Formula: excel_serial = unix_seconds / 86400 + 25569. The constant 25569 is the Excel serial of 1970-01-01 (the start of the Unix epoch). To go the other way: unix_seconds = (excel_serial − 25569) × 86400. If you work with Unix epoch values often, use our dedicated Unix Timestamp Converter — it handles seconds, milliseconds, and microseconds and shows the result in your time zone.

Why does my CSV show 45123 instead of a date?

Because the CSV export wrote out the cell's underlying serial number, not its display value. Excel's date format is a display mask only — when the spreadsheet engine writes plain text it can fall back to the raw integer (especially for Power Query exports, third-party CSV writers, or columns formatted as General). Paste the number into the converter above to recover the real date, or re-export from Excel after explicitly setting the column format to a text date pattern like yyyy-mm-dd.