Skip to main content
L
Loopaloo
Buy Us a Coffee
All ToolsImage ProcessingAudio ProcessingVideo ProcessingDocument & TextPDF ToolsCSV & Data AnalysisConverters & EncodersWeb ToolsMath & ScienceGames
Guides & BlogAboutContact
Buy Us a Coffee
L
Loopaloo

Free online tools for developers, designers, and content creators. Your files are processed in your browser and are never uploaded - no accounts required. A few network utilities (like What's My IP and Currency Converter) call public APIs to do their job and say so on their pages.

support@loopaloo.com

Tool Categories

  • Image Tools
  • Audio Tools
  • Video Tools
  • Document & Text
  • PDF Tools
  • CSV & Data
  • Converters
  • Web Tools
  • Math & Science
  • Games

Company

  • About Us
  • Contact
  • Blog
  • FAQ

Legal

  • Privacy Policy
  • Terms of Service
  • Disclaimer

Support

Buy Us a Coffee

© 2026 Loopaloo. All rights reserved. Built with privacy in mind.

Privacy|Terms|Disclaimer
  1. Home
  2. Converters & Encoders
  3. Unix Timestamp Converter
Add to favorites

Unix Timestamp Converter

Convert between Unix timestamps and dates in any of 400+ time zones, in seconds, milliseconds, microseconds or nanoseconds

Runs locally in your browserMore converters & encodersJump to full guide

Related reading

  • Working with Time Zones: A Developer's Guide to Dates and Times12 min read

Initializing in your browser…

You might also like

Timezone Converter

Convert times through the real IANA rules, flagging local times that happen twice and ones that never happen

Unit Converter

Convert across 18 categories using exact defining factors, with the definition behind every number shown

Color Converter

Convert between ten colour notations including Lab and OKLCH, check WCAG contrast, and simulate colour vision deficiency

An example conversion

An incident log records 1700000000 and you need to line it up with a colleague in New York, on the phone, right now.

Unix timestamp

1700000000
What Unix Timestamp Converter produces

The same instant, four ways

UTC              2023-11-14T22:13:20Z
America/New_York 2023-11-14 17:13:20 -05:00 EST
Europe/Berlin    2023-11-14 23:13:20 +01:00 CET
Calendar         Tuesday, day 318 of 365, ISO week 46 of 2023, Q4

A Unix timestamp is the same number everywhere; the zone only decides which clock face it corresponds to, which is exactly the thing that goes wrong on a call. Pick any of the 400+ zones and the wall clock, the offset and the abbreviation come from the IANA database, so a date in July gets EDT and one in November gets EST rather than a single hardcoded label. The unit is worked out from the number’s magnitude rather than from how many digits it has: the same 1700000000 as milliseconds would be January 1970, and the panel says which reading it took and what the others would have been. Going the other way, a wall clock that never happens or happens twice is named as such instead of getting one confident answer.

What this converter does

Convert a Unix timestamp into a date, or a date into a Unix timestamp, in any of the 400+ time zones the browser knows. Seconds, milliseconds, microseconds and nanoseconds are all read, and which unit a number is in is worked out from its magnitude rather than from how many digits it happens to have. A live counter at the top shows the current timestamp, and every result carries the wall clock, the UTC instant, both ISO 8601 forms, a relative description and the calendar fields: weekday, day of year, ISO week and quarter.

How it works

The unit question is the one most timestamp tools get wrong, and it is worth being precise about. Unix time is a count from 1 January 1970 UTC, but nothing in the number says whether it counts seconds, milliseconds, microseconds or nanoseconds. The usual approach is to count the characters: thirteen or more means milliseconds, fewer means seconds. That works for the range people normally paste and is silently wrong on either side of it. A thirteen digit number meant as seconds is the year 33658 and gets read as September 2001; a twelve digit number of milliseconds is September 2001 and gets read as the year 33658; a sixteen digit microsecond value, which is what a Chrome trace or a Postgres timestamp gives you, gets read as the year 55969. Here the units are three orders of magnitude apart, so magnitude answers the question properly: the reading that lands in a plausible range wins, the panel says which one it chose and what the other three would have meant, and setting the unit explicitly always overrides the guess rather than being overridden by a digit rule.

The zone work is done by the same resolver the timezone converter uses, which probes the offsets either side of a naive instant rather than round tripping a Date through a locale string. That matters in both directions. Reading a timestamp, it means the wall clock, the offset and the abbreviation come from the IANA database at that instant, so Moscow in July 2010 is +04:00 and in July 2016 is +03:00, Samoa on 20 December 2011 is -10:00 and a month later is +14:00, Kathmandu is +05:45, and New York is EST in January and EDT in July. Writing one, it means a local time that does not exist because the clocks went forward is named as such, with the instant the clock jumps to, and a local time that happens twice because the clocks went back offers both instants rather than picking one silently. Neither answer depends on the machine the page is open on: the same wall clock table comes back under four different machine time zones in the browser tests.

The boundaries are called out rather than left to be discovered. A value past 2147483647 gets a note that a signed 32-bit time_t wraps at 2038-01-19T03:14:07Z, and the negative end gets the same treatment at 1901-12-13T20:45:52Z. A negative timestamp is accepted and converted, with a note that plenty of software refuses them. A number too large for a date at all is refused with the reason rather than showing an "Invalid Date". Input that is not a whole number, such as 1e10, a decimal, or a comma-grouped figure, is refused by naming the character that is wrong, rather than being silently truncated by parseInt at the first character it cannot use.

The relative description is built from calendar arithmetic through Intl.RelativeTimeFormat rather than from thirty-day months. Twelve thirty-day months is 360 days, so a date thirteen months old lands in the wrong bucket under the usual approximation: 400 days ago is described here as thirteen months ago, not as a year. The calendar fields are computed the same way, including the ISO 8601 week number, which is not the same as the week of the year: 3 January 2010 is week 53 of 2009, and the tool says so.

There is also a text field for a date written out rather than as a number. It reads the ISO forms and RFC 2822, states in each case how it read the string (an explicit offset, no offset so read in the chosen zone, or a bare date read as UTC midnight), and refuses anything else rather than guessing. That refusal is deliberate: Date.parse is only specified for the ISO form, and every other shape is up to the engine, so a string that works in one browser can give a different instant or fail outright in another.

Examples

  • Decode an API timestamp

    Paste 1704067200. It is read as seconds and resolves to 2024-01-01T00:00:00.000Z, with the wall clock in whatever zone is selected.

  • Read a microsecond timestamp

    Paste 1704067200000000, the form a Chrome trace or a Postgres timestamp uses. It is read as microseconds and gives the same instant, where a digit-count rule would put it in the year 55969.

  • Check the Year 2038 boundary

    Click 2038 limit for 2147483647, which resolves to 2038-01-19T03:14:07Z with no warning, then One past it to see the warning appear.

  • Find the hour that does not exist

    Choose America/New_York, switch to Date to timestamp, and pick 8 March 2026 at 02:30. The panel says the clocks go forward through it and gives the instant they jump to.

How to use

  1. 1Pick a time zone, or leave it on the one this machine is set to.
  2. 2In Timestamp to date, paste the number. The unit is worked out from its magnitude, and the note underneath says which reading was taken and what the others would have meant; set the unit explicitly to override it.
  3. 3Read the wall clock, the UTC instant, both ISO forms, the relative description and the calendar fields, and copy any of them.
  4. 4In Date to timestamp, pick a date and a time. The time is read in the zone selected above, not in the machine’s own zone.
  5. 5If the local time you picked never happens or happens twice, the panel says so and offers both instants where there are two.
  6. 6Or paste a date as text: an ISO string with or without an offset, or an RFC 2822 date.

Key features

  • Seconds, milliseconds, microseconds and nanoseconds, with the unit worked out from magnitude rather than digit count
  • The alternative readings shown, so a wrong guess is visible rather than silent
  • An explicit unit setting that is never overridden
  • All 400+ IANA time zones, with the offset and abbreviation taken from the database at that instant
  • A local time that never happens is named, with the instant the clock jumps to
  • A local time that happens twice offers both instants
  • The same answers under any machine time zone, which the browser tests check under four
  • A note when a value passes the signed 32-bit limit, in either direction, with the instant it wraps
  • Negative timestamps, back to 1901 and beyond
  • Calendar fields: weekday, day of year, ISO 8601 week and week-numbering year, quarter, leap year
  • A relative description from Intl.RelativeTimeFormat over calendar months, not 30-day ones
  • A text field that reads ISO 8601 and RFC 2822 and refuses anything that would need guessing
  • Runs entirely in the browser

Tips & best practices

  • If the unit note says it guessed and the guess is wrong, click the unit you meant. The explicit setting always wins.
  • The 2038 limit and One past it presets sit next to each other so the boundary and the warning can be seen together.
  • In Date to timestamp the time is read in the zone chosen at the top, so set the zone before you set the time.
  • For a date that has to mean one instant everywhere, paste an ISO string with an explicit offset into the text field; the zone selector is then ignored and the panel says so.

Where this fits

  • Correlating logs across zones

    A timestamp is the same number everywhere and the zone only decides the clock face. Pick the zone your colleague is in and read the wall clock they would have seen.

  • Working out which unit a field is in

    Paste the number and read the note: it says which unit it took and what the same value would mean in each of the other three, so a millisecond field mislabelled as seconds is obvious.

  • Scheduling around a clock change

    Enter the local date and time in the zone it applies to. If it falls in a gap or a repeat, the tool says so rather than returning one confident number.

  • Testing 2038 readiness

    The presets sit either side of the signed 32-bit limit, and any value past it carries a note naming the instant a 32-bit counter wraps.

Frequently asked questions

How does it know whether my number is seconds or milliseconds?

From its magnitude, not its length. The units are three orders of magnitude apart, so only one reading usually lands in a plausible range. The panel says which it took and what the other three would have meant, and you can set the unit explicitly at any time.

Why does the date change when I change the time zone?

It does not; the instant is the same number. The zone decides which clock face that instant corresponds to, and near midnight two zones can be on different calendar days for the same moment.

What happens on the day the clocks change?

Going forward, an hour of local time never happens, and the tool says so and gives the instant the clock jumps to. Going back, an hour happens twice, and the tool gives both instants rather than picking one.

What is the Year 2038 problem?

A signed 32-bit second counter runs out at 2147483647, which is 2038-01-19T03:14:07Z; the next second wraps to 1901. Anything past that value carries a note here. Sixty-four bit time is fine for another 292 billion years.

Are leap seconds accounted for?

No, and they cannot be: Unix time is defined to ignore them, so every day is exactly 86,400 seconds and a leap second shares a timestamp with the second before it. Every implementation behaves this way.

Why did it refuse my date string?

Because Date.parse is only specified for the ISO form. Every other shape is implementation defined, so a string like "01/02/2024" means different things in different engines. The tool reads ISO 8601 and RFC 2822 and refuses the rest rather than guessing.

Related tools and how they differ

  • Timezone Converter: Converts a wall clock between named city zones and schedules a meeting across several at once. Use it for zone-to-zone times rather than for epoch arithmetic.

Further reading

  • Working with Time Zones: A Developer's Guide to Dates and Times12 min read

Private by design

Conversions run on your device in JavaScript. The values you enter are never sent over the network.