Unix Timestamp Converter
Convert Unix timestamps to readable dates and back. Supports seconds and milliseconds.
Current Unix Timestamp
,
What is Unix Timestamp Converter?
A unix timestamp converter takes a Unix epoch number, the count of seconds (or milliseconds) elapsed since 1970-01-01T00:00:00Z, and renders it as a human-readable date in UTC, ISO 8601, and your local time zone, or runs the conversion the other way. The Unix epoch is defined in POSIX.1-2017 and is the time format every Unix-derived operating system, most databases, and most APIs use under the hood, including JavaScript’s Date object (ECMA-262).
This Unix Timestamp Converter accepts a numeric timestamp or a date string, detects whether the number is in seconds or milliseconds, and shows the conversion result alongside a live ticker of the current Unix timestamp. Backend developers, data engineers, and support staff use a unix timestamp converter to translate database created_at columns into something a human can read, to debug cron triggers, to verify JWT expiration claims, and to confirm time-zone offsets in log files.
Why use a Unix Timestamp Converter?
- Read database timestamps without a SQL prompt. Paste the
BIGINTvalue from a row and see the UTC and local date at the same time. - Verify token expiration. JWT
expandiatclaims are Unix timestamps in seconds. Drop the value in to confirm whether a token is still valid. - Debug cron and scheduler triggers. Background job runners log next-fire times as epoch seconds. Convert to local time to confirm the schedule is correct.
- Avoid time-zone confusion. The converter shows UTC, ISO 8601, and local at once, so you can see exactly how an offset would shift the wall clock.
- Pick the right precision. The tool auto-detects whether your input is in seconds or milliseconds, which avoids the classic “off by 1000” bug.
How to use the Unix Timestamp Converter
- Watch the Current Unix Timestamp card at the top tick in real time, so you have a sanity check for “now”.
- Pick a direction with the Timestamp → Date or Date → Timestamp toggle.
- Type or paste a value into the input. Sample formats:
1609459200(seconds),1609459200000(milliseconds), or2021-01-01T00:00:00Z. - Read the result block. Timestamp-to-date returns UTC, ISO, and local strings on three lines.
- Copy the result with the inline copy button.
Unix epoch explained
The Unix epoch is 00:00:00 UTC on 1 January 1970, an arbitrary anchor picked by the designers of early Unix. Every Unix timestamp is the count of non-leap seconds elapsed since that instant. Negative numbers represent moments before the epoch.
0 → 1970-01-01T00:00:00Z
1000000000 → 2001-09-09T01:46:40Z
1609459200 → 2021-01-01T00:00:00Z
1748563200 → 2025-05-30T00:00:00ZPOSIX timestamps deliberately ignore leap seconds, which keeps the math seconds = (date - epoch) / 1000 exact and avoids leap-second handling inside applications. The downside is that a Unix timestamp is not a perfect physical-time count; it is the number of seconds the wall clock has advanced.
The 32-bit signed integer form of a Unix timestamp rolls over at 2147483647, which is 2038-01-19T03:14:07Z, the Year 2038 problem. Modern systems store timestamps in 64-bit integers and are not affected, but legacy embedded code can still hit it.
Timestamp precision: seconds vs milliseconds
Different systems use different precisions for the same epoch.
| Precision | Multiplier vs seconds | Typical source |
|---|---|---|
| Seconds | 1 | Unix time(), JWT exp, iat, most APIs |
| Milliseconds | 1000 | JavaScript Date.now(), Java System.currentTimeMillis() |
| Microseconds | 1 000 000 | Some databases (PostgreSQL timestamp) |
| Nanoseconds | 1 000 000 000 | Go time.UnixNano(), high-precision logs |
The converter detects seconds versus milliseconds by checking whether the number is greater than 10^12 (any millisecond value after 2001 is). If your value is in microseconds or nanoseconds, divide by 1000 or 1 000 000 first.
// JavaScript example
const seconds = Math.floor(Date.now() / 1000); // for APIs
const ms = Date.now(); // for JavaScript DateConversion table
A handful of canonical timestamps and the dates they map to.
| Unix timestamp (seconds) | UTC ISO 8601 |
|---|---|
0 | 1970-01-01T00:00:00Z |
946684800 | 2000-01-01T00:00:00Z |
1234567890 | 2009-02-13T23:31:30Z |
1609459200 | 2021-01-01T00:00:00Z |
1700000000 | 2023-11-14T22:13:20Z |
2147483647 | 2038-01-19T03:14:07Z (32-bit overflow) |
Common use cases
- Backend developers debugging API responses. Convert the
created_atfield of a webhook payload to local time to confirm event ordering. - DevOps engineers reading server logs. Most syslog and journalctl formats include epoch seconds; the converter renders them as wall-clock time without a CLI.
- Security engineers auditing JWT lifetimes. Translate the
expclaim into a real date to verify a token does not live longer than policy allows. - Data analysts cleaning timestamp columns. Confirm whether a column is in seconds or milliseconds before normalizing it in a pipeline.
- Support staff explaining UTC offsets to customers. Show the same instant in UTC and local time to settle “the event fired at the wrong time” tickets.
Frequently asked questions
What is a unix timestamp?
A Unix timestamp is the count of seconds elapsed since 1970-01-01T00:00:00Z, ignoring leap seconds. It is the standard way Unix-derived systems and most APIs represent a point in time, because the same number is unambiguous in every time zone.
How do I convert a unix timestamp to a date?
Multiply seconds by 1000 to get milliseconds, then pass the result to a date library. In JavaScript: new Date(1609459200 * 1000).toISOString() returns 2021-01-01T00:00:00.000Z. This converter does the same conversion live as you type.
Why is my date a thousand times off?
You probably mixed up seconds and milliseconds. JavaScript’s Date.now() returns milliseconds; most server APIs use seconds. The converter auto-detects which precision you provided by checking whether the number is above 10^12, but always confirm before saving the result.
What time zone does a unix timestamp use?
A Unix timestamp has no time zone; it is the absolute count of seconds since the epoch in UTC. Time zone only matters when you display the value. The converter shows UTC, ISO 8601 (which is implicitly UTC when it ends in Z), and your browser’s local time side by side.
What is the year 2038 problem?
A signed 32-bit integer rolls over at 2147483647, which is 2038-01-19T03:14:07Z. Any system that still stores Unix timestamps in 32-bit signed integers will overflow at that instant and start reporting negative numbers. Modern systems use 64-bit integers and are not affected.
How do I get the current unix timestamp in JavaScript?
Math.floor(Date.now() / 1000) returns the current epoch in seconds. Date.now() returns milliseconds, which is what JavaScript’s Date constructor expects. The live ticker on this page uses the seconds form.
Why does my timestamp look negative?
Negative Unix timestamps represent moments before the epoch (before 1970-01-01T00:00:00Z). This happens for historical dates or when buggy code subtracts the epoch from a date that is already earlier than 1970.
Does the converter handle dates before 1970?
Yes for the date-to-timestamp direction; the result is a negative number that the browser handles correctly. Some legacy systems reject negative timestamps. Always confirm downstream code supports them before storing a pre-1970 date.
Related tools
- HAR Viewer: Open and inspect HTTP Archive files captured from DevTools.
- User-Agent Parser: Decode any user agent string into browser, OS, and engine.
- Browser Info: Show your current browser, OS, language, and hardware capabilities.
- Crontab Generator: Build and explain cron schedules with a visual editor.
Related tools
HAR Viewer
Drop a .har file and get a network timeline. Filter by status, method, or slow requests.
Open toolURL Parser
Decompose a URL into components and edit query params interactively.
Open toolUser Agent Detector
See your full user agent string and a parsed breakdown of browser, OS, and device.
Open toolShotMark captures what you do here, in one click.
The traces, payloads, and tests you run by hand? ShotMark grabs the whole bug and hands it to your AI agent.