Convert Nanoseconds to Date

Nanosecond timestamps (19 digits) appear in Go's time.UnixNano(), distributed tracing, and high-frequency systems. They count billionths of a second since the Unix epoch.

Paste a nanosecond value to see the date plus the equivalent seconds, milliseconds, and microseconds. Full integer precision is preserved using big integers.

Worked example

Input 1700000000000000000 converts to Tue, 14 Nov 2023, 22:13:20 UTC:

UTC
Tue, 14 Nov 2023, 22:13:20 UTC
ISO 8601 (UTC)
2023-11-14T22:13:20.000Z
RFC 3339 (UTC)
2023-11-14T22:13:20Z
RFC 2822
Tue, 14 Nov 2023 22:13:20 +0000
Unix seconds
1700000000
Unix milliseconds
1700000000000
Microseconds
1700000000000000
Nanoseconds
1700000000000000000
Hex (seconds)
0x6553f100
Binary (seconds)
1100101010100111111000100000000

Code examples

JavaScript
const d = new Date(1700000000000);
console.log(d.toISOString()); // 2023-11-14T22:13:20.000Z
Math.floor(Date.now() / 1000); // current epoch
Python
from datetime import datetime, timezone
print(datetime.fromtimestamp(1700000000, tz=timezone.utc))  # 2023-11-14T22:13:20.000Z
import time; int(time.time())
Go
package main
import ("fmt"; "time")
func main() {
  fmt.Println(time.Unix(1700000000, 0).UTC()) // 2023-11-14T22:13:20.000Z
  fmt.Println(time.Now().Unix())
}

See all 14 languages on the code examples pages.

Frequently asked questions

How many digits is a nanosecond timestamp?
Around 19 digits for present-day dates. Divide by 1,000,000,000 to get seconds.
Which languages use nanosecond time?
Go (time.UnixNano), and many tracing/observability tools. Rust and Java can also expose nanosecond precision.
Will I lose precision converting in JavaScript?
Plain JS numbers lose sub-millisecond precision. This tool uses BigInt to keep the full nanosecond value exact.

Related conversions

Copied