How to Convert Timestamps
Convert between Unix timestamps, ISO 8601 strings, and human-readable date formats.
Problem
You have a timestamp in one format (e.g., Unix epoch) and need it in another (e.g., ISO 8601 or local time).
Prerequisites
- Understanding of Unix timestamps
- Knowledge of ISO 8601 format
Steps
-
1. Identify the input format
Determine whether the timestamp is a Unix epoch (seconds or milliseconds since 1970-01-01), an ISO 8601 string, or a custom format. Unix timestamps in seconds are 10 digits; milliseconds are 13 digits. This distinction is critical.
Input1697254800 (seconds)OutputUnix epoch in seconds -
2. Convert to the target format
Parse the timestamp into a date object, then format it as needed. For ISO 8601, use toISOString(). For human-readable, use locale-aware formatting. For Unix timestamp, use getTime()/1000 (seconds) or getTime() (milliseconds).
Input1697254800 → ISO 8601Output2023-10-14T03:00:00.000Z -
3. Handle timezones correctly
Unix timestamps are always UTC. When displaying in local time, convert explicitly. Beware of the system's local timezone affecting parsing of date strings. Always store and transmit timestamps in UTC to avoid ambiguity.
InputUTC → local timeOutputtimezone-aware display
Expected result
The timestamp converted to the desired format, with timezone handling correct.
Common errors
- Confusing seconds and milliseconds
- Unix timestamps can be in seconds (10 digits) or milliseconds (13 digits). Check the magnitude and convert accordingly. JavaScript uses milliseconds.
- Timezone offset applied incorrectly
- Always work in UTC internally and convert to local time only for display. Use explicit timezone libraries for reliable conversion.
Troubleshooting
- If the date is off by hours, check for a timezone mismatch between the source and your system.
- If the year is 1970, the timestamp was treated as 0 or parsed incorrectly.
Security limits
- Timestamp conversion is a pure calculation with no security implications.
Related tools
Related tasks
Ready to run it?