Unix Timestamp Converter

Convert a Unix timestamp to a human date (UTC, ISO, local, relative) — seconds or milliseconds auto-detected.

Seconds vs milliseconds is auto-detected by length. Conversions use your device's local timezone.

How to use the Unix Timestamp Converter

  1. Enter a timestamp. Paste a Unix epoch in seconds or milliseconds.
  2. Convert. See UTC, ISO, local and relative times.
  3. Or use now. Grab the current timestamp with one click.

Free to use — premium coming soon

FREE
  • Seconds/ms auto-detect
  • UTC/ISO/local/relative
  • 100% private
PREMIUM
  • Remove ads
  • Timezone picker & batch convert

About the Unix Timestamp Converter

The Unix Timestamp Converter turns a raw epoch number into a readable calendar date and time, and turns a date back into its epoch value. A Unix timestamp is simply the count of seconds that have passed since 00:00:00 UTC on 1 January 1970, the moment programmers call the Unix epoch. Because it is just an integer, it is the most compact and unambiguous way to store an instant in time. This tool reads both directions: paste a number to decode it, or pick a date to encode it, with output shown in UTC and your local time zone side by side.

Reach for this converter whenever you meet a bare number where a date should be. Server logs, API responses, JWT expiry claims, database columns, cookie expiry fields, IoT sensor records, and Git commit metadata all routinely store time as an epoch value rather than a formatted string. Developers, QA testers, support engineers, and data analysts use it to sanity-check that a token has not expired, to confirm a record was written when expected, or to build a query filter. It also helps when you need the current epoch value to hard-code into a test or a scheduled job.

Mechanically, conversion is plain arithmetic on a single counting axis. A 10-digit number is measured in seconds; a 13-digit number is in milliseconds, and one is converted to the other by multiplying or dividing by 1000 (JavaScript's Date.now() returns milliseconds, while most server languages return seconds). The tool detects the magnitude and offers both readings so you are never off by three orders of magnitude. Negative numbers are valid too and point to dates before 1970, counting backward one second at a time, so -86400 is exactly one day before the epoch.

Accuracy note: Unix time deliberately ignores leap seconds and treats every day as exactly 86,400 seconds, so the value tracks UTC rather than the Earth's exact rotation. As of late 2025, 27 leap seconds have been inserted since 1970, which is the small offset between Unix time and true elapsed atomic time. This converter runs entirely in your browser using your device's own date engine, so the timestamps you enter are never uploaded, logged, or sent to a server. Your local-time output reflects the time zone configured on your own machine.

Frequently asked questions

How do I tell if my timestamp is in seconds or milliseconds?

Count the digits. A timestamp for a recent date has 10 digits in seconds (e.g. 1700000000) and 13 digits in milliseconds (e.g. 1700000000000). Multiply seconds by 1000 to get milliseconds, or divide by 1000 to go the other way; this tool shows both readings automatically.

What time zone does a Unix timestamp use?

A Unix timestamp has no time zone of its own; it always represents a single instant measured from the epoch in UTC. Any local time you see is produced when the number is formatted for a particular zone, which is why this converter shows both the UTC value and your machine's local time.

What is the year 2038 problem?

Systems that store Unix time in a signed 32-bit integer can only count up to 2,147,483,647 seconds, which is reached at 03:14:07 UTC on 19 January 2038. After that the value overflows and wraps to a negative number, misreading the date as 1901. Modern 64-bit systems store the value in a 64-bit integer and are not affected.

Can a Unix timestamp be negative?

Yes. Negative values represent dates before the epoch, counting backward one second at a time, so -86400 is 31 December 1969 at 00:00:00 UTC. They are mathematically valid, though some older systems and languages handle them poorly.

How do I get the current Unix timestamp in code?

In JavaScript use Math.floor(Date.now() / 1000) for seconds or Date.now() for milliseconds. In Python use int(time.time()), in PHP use time(), and in most SQL dialects use a function like UNIX_TIMESTAMP() or EXTRACT(EPOCH FROM now()).

From our blog

JSON to CSV Without Losing Data: Flattening, Encoding, and Excel Traps

By the Super Simple Digital Tools Team · Updated June 2026

Most JSON to CSV problems are not really about JSON or CSV; they are about the gap between a flexible tree and a rigid grid. JSON can nest objects inside objects and arrays inside arrays to any depth, while CSV is a flat table of rows and columns. The conversion succeeds when your data is already list-shaped, an array of records that all describe the same kind of thing, and gets awkward only when a single record fans out into sub-lists. Knowing that distinction up front tells you whether you should convert at all or keep the data as JSON.

The first real decision is how to flatten. A nested object usually maps cleanly to dotted columns: {"user":{"id":1,"city":"Oslo"}} becomes user.id and user.city, one value each, no information lost. Arrays need more thought. An array of primitives like ["red","blue"] reads best joined into one cell, because the items belong together as a set. An array of objects, such as invoice line items, carries independent meaning per item, so you either expand them into numbered columns or split the record into multiple rows. Picking the wrong strategy is the most common cause of a CSV that technically converts but is unusable.

Headers come from the union of keys, not just the first object. If one record has an email field and the next does not, the converter still creates an email column and leaves the missing cell empty so every row has the same width. This matters with API data, where optional fields appear only on some records. Relying on the first object alone would silently drop columns. Empty cells are correct here; they preserve the shape of the table and let spreadsheets and importers line up values under the right headers.

Escaping is where naive conversions fall apart. The CSV format reserves the comma as a separator, the double quote as a wrapper, and the line break as a row terminator, so any value containing one of those must be quoted, and quotes inside the value are doubled rather than backslash-escaped. A product description with a comma, an address with a newline, or a note with a quotation mark all need this treatment, or the columns shift and the file becomes garbage two rows down. A correct converter applies RFC 4180 quoting automatically so you never have to think about it.

Finally, encoding and the spreadsheet itself. Save and treat CSV as UTF-8 so accented names and non-Latin scripts survive; Excel on Windows may need a byte-order mark or an explicit import step to read UTF-8 correctly. The bigger trap is type auto-detection: opening a CSV by double-click lets Excel reinterpret your text, dropping leading zeros and rewriting long IDs as 1.23457E+15. The file is fine; the viewer is guessing. Import through the data wizard, set identifier columns to Text, and your CSV will round-trip exactly as written.

  • Wrap your input in square brackets if it is a bare list of objects; the converter needs a top-level array to produce one row per record.
  • For ZIP codes, phone numbers, and long IDs, open the CSV via Excel's Data > From Text/CSV and set those columns to Text to stop leading zeros and scientific-notation corruption.
  • Decide per array: join primitive arrays like tags into one cell, but expand arrays of objects (line items) into separate columns or rows so nothing collapses.
  • If accented or non-Latin characters look wrong after opening, the file is UTF-8 but the spreadsheet guessed the encoding; reimport and choose UTF-8 explicitly.

Read the full guide →

Tool by the Super Simple Digital Tools Team. Reviewed by our editorial team. Free to use, no signup required.

Related tools