# Unix timestamp converter: epoch seconds and milliseconds

URL: https://fincodelabs.com/en/tools/unix-timestamp-converter · Publisher: Fincode (Fincode Yazılım ve Teknoloji A.Ş.), Istanbul, Turkey · Updated: 2026-10-15

Paste a Unix timestamp or an ISO 8601 date to see it in UTC, in ISO 8601 and as epoch seconds and milliseconds, and check a request timestamp against an exchange's server time and recvWindow. Free, no sign-up required.

## Calculator

The calculation runs in the browser in the form on this page: https://fincodelabs.com/en/tools/unix-timestamp-converter

**Inputs**
- Timestamp or date: Unix time in digits, or an ISO 8601 date such as 2026-11-05T12:00:00Z
- Read digits as: Automatic goes by the number of digits: 10 for seconds, 13 for milliseconds
- Server time (ms): Optional; from the exchange's time endpoint, typed by you (default: 1793880001200)
- recvWindow (ms): Optional; 5,000 if empty, the default in Binance's and Bybit's documents (default: 5,000)

**Results:** UTC date and time, Day, ISO 8601 (UTC), Unix time in seconds, Unix time in milliseconds, Read as, In your browser's time zone, Your browser's clock now, Timestamp against your clock, Against the server time

> The clock shown is your device's own clock as your browser reads it: no time server or exchange is asked, and nothing you type is sent anywhere. The default timestamps are hypothetical.

## What a Unix timestamp is

A Unix timestamp counts the seconds since 00:00:00 UTC on 1 January 1970, with every day counted as exactly 86,400 seconds, so leap seconds are not part of it.

POSIX defines this count, seconds since the Epoch, and leaves its relation to the exact current UTC unspecified. JavaScript's Date counts milliseconds from the same moment and ignores leap seconds, and many exchange APIs also use milliseconds: Binance's Spot API takes timestamps in milliseconds or microseconds, and Bybit's V5 API asks for a UTC timestamp in milliseconds. The number of digits tells the unit for current dates:

**Digits of a timestamp in 2026, by unit. The automatic setting reads the unit from this count.**

| Unit | Digits | Example for 5 November 2026, 12:00 UTC |
| --- | ---: | ---: |
| Seconds | 10 | 1793880000 |
| Milliseconds | 13 | 1793880000000 |
| Microseconds | 16 | 1793880000000000 |
| Nanoseconds | 19 | 1793880000000000000 |

## Worked example

> **Hypothetical example:** a request timestamp of 1793880000000, a server time of 1793880001200 and a recvWindow of 5,000 ms, the converter's default values.
>
> The timestamp has 13 digits, so it is read as milliseconds: **2026-11-05 12:00:00 UTC**, a Thursday, which is 2026-11-05T12:00:00.000Z in ISO 8601 and 1793880000 in seconds.
>
> The server time is 1,200 ms later, so the request is 1,200 ms behind server time and inside a 5,000 ms window. With a server time of 1793880006500 it would be 6,500 ms behind and outside the window, and with 1793879998500 it would be 1,500 ms ahead of server time, which the rule below also rejects.

## Debugging timestamp and recvWindow errors

Binance's Spot API documentation gives the rule its servers apply to a signed request: it is processed only if the timestamp is less than one second ahead of server time and no more than recvWindow behind it. If recvWindow is not sent it defaults to 5,000 ms, and the maximum is 60,000 ms. Bybit's V5 guide states the same shape, server time − recv_window ≤ timestamp < server time + 1,000, with a default of 5,000 ms.

The common causes are a drifting clock on the machine that signs, a timestamp in seconds where milliseconds are expected, and a delay between building the request and sending it, such as a retry that reuses an old timestamp. Compare your timestamp with the exchange's own server time, which this page cannot fetch for you, and fix the clock rather than widening the window. These documents are cited for their timing rules only. Article 99/A of Capital Markets Law No. 6362 treats activity by foreign crypto-asset platforms directed at Turkish residents as unauthorized.

Rejected signatures are a separate problem; the [HMAC signature generator](https://fincodelabs.com/en/tools/hmac-signature-generator) rebuilds the signed string with sample keys, and the [Binance API error code guide](https://fincodelabs.com/en/blog/binance-api-error-codes) covers -1021 and the rest.

## ISO 8601 dates and time zones

RFC 3339, the profile of ISO 8601 used across Internet protocols, writes a time as 2026-11-05T12:00:00Z, where Z means a UTC offset of 00:00, or with an offset such as +03:00, and it allows a space in place of the T.

A date and time without any offset is ambiguous. JavaScript's Date.parse reads a date-only string as UTC but a date-time string without an offset as local time, so the same text can give different timestamps on different machines. This converter reads both as UTC and says so in the Read as row, with a note under the field for a date and time. It rejects a seconds value of 60: RFC 3339 allows one for an inserted leap second, but Unix time has no place for it.

## Converting timestamps in Python

Python's datetime does the same conversion; tested with Python 3.11 on 6 November 2026:

```python
from datetime import datetime, timezone

ms = 1793880000000
print(datetime.fromtimestamp(ms / 1000, tz=timezone.utc).isoformat())  # 2026-11-05T12:00:00+00:00
print(int(datetime(2026, 11, 5, 12, tzinfo=timezone.utc).timestamp() * 1000))  # 1793880000000
```

Dividing by 1,000 gives a float, which is exact enough for milliseconds; for microsecond or nanosecond values, split the integer instead, as this page does, so the last digits are not rounded away. Pass tz=timezone.utc, because without it Python returns your machine's local time.

## Which values to enter

- **Timestamp or date:** digits, with a decimal point if your system writes fractions of a second, or an ISO 8601 date. Spaces around it are ignored.
- **Read digits as:** automatic by digit count, or a unit you pick when a timestamp is unusually short or long.
- **Server time:** optional, in milliseconds from the exchange's time endpoint, typed by you.
- **recvWindow:** optional; the window your request sends, 5,000 if empty.

The button under the timestamp fills in your browser's clock. That clock is only as accurate as your device's, which is why a server time from the exchange is the reference for the window check.

## Frequently asked questions

### How do I convert a Unix timestamp to a date?

Paste it into the converter: 1793880000 in seconds or 1793880000000 in milliseconds is 2026-11-05 12:00:00 UTC. In code, divide milliseconds by 1,000 and pass the result to a function that takes seconds, with UTC as the time zone.

### Is my timestamp in seconds or milliseconds?

For current dates, 10 digits are seconds and 13 are milliseconds; 16 are microseconds and 19 nanoseconds. The converter reads the unit from the length, and you can override it.

### What does "Timestamp for this request is outside of the recvWindow" mean?

It is Binance's message for error -1021: the request reached the server more than recvWindow after its timestamp, or the timestamp was a second or more ahead of server time. Check the clock and the unit before anything else.

### Does this page use an internet time server?

No. The clock comes from your own device through the browser, the page makes no network request, and what you type stays on the page.

### Why does JavaScript give a different time for the same date string?

Without an offset, Date.parse reads a date and time as local time but a date alone as UTC. Add Z or an offset, such as +03:00, to make the string unambiguous.

## Sources

- [The Open Group Base Specifications Issue 8 (POSIX.1-2024), section 4.19: Seconds since the Epoch](https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap04.html)
- [RFC 3339: Date and time on the Internet: timestamps](https://www.rfc-editor.org/rfc/rfc3339)
- [MDN: Date (epoch, milliseconds, Date.parse and time zones)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date)
- [Binance Spot API documentation: REST API, timing security (read 6 November 2026)](https://github.com/binance/binance-spot-api-docs/blob/master/rest-api.md)
- [Binance Spot API documentation: error codes, -1021 INVALID_TIMESTAMP (read 6 November 2026)](https://github.com/binance/binance-spot-api-docs/blob/master/errors.md)
- [Bybit V5: Integration guidance, timestamp and recv_window (read 6 November 2026)](https://bybit-exchange.github.io/docs/v5/guide)
- [Capital Markets Law No. 6362, consolidated text, Article 99/A (Turkish)](https://www.mevzuat.gov.tr/mevzuatmetin/1.5.6362.pdf)

> This calculator is general information, not tax, legal or investment advice. Results depend on the values you enter; fees, margin rules and tax rules differ by exchange and country and change over time, so check the official source and ask a licensed adviser about your own situation. Sources, checks and corrections: see the [editorial policy](https://fincodelabs.com/en/editorial-policy).

---

Published by Fincode (Fincode Yazılım ve Teknoloji A.Ş.), a software company in Istanbul, Turkey: https://fincodelabs.com/en/tools/unix-timestamp-converter

Cite as: Fincode, "Unix timestamp converter: epoch seconds and milliseconds", updated October 15, 2026, https://fincodelabs.com/en/tools/unix-timestamp-converter
