Epoch and timestamp converter for pipelines
Paste an epoch value or a whole column of them and get the instant back as UTC ISO 8601, as a wall clock in a timezone you pick, and as SQL and pandas you can drop into a job. The unit is read from the digit count, and you can override it when a number is ambiguous. Nothing leaves the browser.
Converted instant, UTC ...
Detected unit ...
In selected timezone ...
Epoch seconds ...
Epoch milliseconds ...
Every value
JSON array
SQL literals
Python, with pandas
Why the digit count is not enough
Most epoch bugs are unit mistakes. A column of numbers that should be seconds arrives in milliseconds, you multiply by 1000 in the wrong direction, and every row lands in 1970 or in the year 55000. Auto detection covers the four common cases because the widths are distinct: 10 digits is seconds, 13 is milliseconds, 16 is microseconds, 19 is nanoseconds. The trap sits in between. An 11 or 12 digit number is a real instant under two different readings, so the tool refuses to guess quietly and flags it. Set the unit yourself for those rows.
Once the unit is right, the instant is the same no matter which timezone you display it in. Epoch time has no timezone, which is exactly why it is a safe column type and why a report that reads "November 14" from a UTC column will disagree with a colleague reading the same value in local time.
What the browser can and cannot do
Everything here runs in JavaScript on your machine, using the Intl API for timezone offsets and Date for the ISO strings. One limit is worth knowing before you trust the output: a JavaScript Date holds milliseconds, and a nanosecond epoch is a 19 digit integer that overflows both the 53 bit safe integer range and the millisecond clock. The conversion for us and ns is therefore done as BigInt arithmetic, and any sub-millisecond remainder is truncated in the dates this page prints. If your pipeline must keep the nanoseconds, convert them where the precision lives, in the warehouse or in pandas, and use the numbers here to check the unit is right.
Taking the output into a job
The JSON array is the version to feed a loader: one object per row, with the unit, the UTC instant, the local instant, and both epoch forms. The SQL block gives you zone-less TIMESTAMP literals, one per distinct instant with the inputs that produced it named above, plus a Snowflake CONVERT_TIMEZONE select, so the zone is attached in the warehouse rather than baked into the string. When several inputs are the same moment written at different precisions, they collapse to a single literal instead of repeating. The pandas line carries the detected unit straight into to_datetime. The rest of the bench, from API cost calculators to a token budget planner, is on the tools index.