Time zone converter

Convert a local time between IANA zones, rejecting nonexistent times and explicitly choosing between instants when a time repeats.

Processing stays in your browser without uploads or automatic storage. Enter both zones; your device zone never substitutes for them. To convert a UTC instant, use UTC as the source and enter its date and time without Z.

Use YYYY-MM-DDTHH:mm:ss or YYYY-MM-DDTHH:mm:ss.SSS. Source year: 1900–2100. Seconds are required; the fraction is absent or exactly three digits. Latin, Arabic-Indic and Eastern Arabic digits are accepted. No whitespace, line breaks, leap seconds or calendar annotations.

32 UTF-16 units for the time, 100 for each zone name and a 1 KiB request. One worker with a 5-second deadline; replies and each exported file are limited to 8 KiB. These bound work, not total browser memory.

Conversion loads a processing file from this site, about 162 KiB before transfer compression. Your inputs are not uploaded. Your browser must support background processing and named time zones; download size varies with transfer compression.

Results use the browser’s Intl zone data, not a separately pinned tzdb version. Historical or future data can differ between devices. Target dates can reach 1899 or 2101 at source-year boundaries. No scheduling or background notifications.

Copy and downloads are complete. JSON keys and technical TXT labels stay in English for exchanging results, with ISO times and three millisecond digits. Zone names are never opened as links.

How to use

Enter the local time including seconds and explicitly name both zones, then convert. For a UTC instant, use UTC as the source and enter the time without Z. If two candidates appear, review each UTC instant and offset, then choose earlier or later; neither is a default. Review source and target, copy TXT or download complete TXT and JSON. Editing any field clears the prior result and choices.

Try an example

2024-01-01T12:00:00 from UTC to Asia/Riyadh becomes 2024-01-01T15:00:00.000 with offset +03:00. In America/New_York, 2024-11-03T01:30:00 has two instants: 05:30Z at -04:00 or 06:30Z at -05:00. In the same zone, 2024-03-10T02:30:00 does not exist and is rejected.

Support & limits

Processing is local without uploads, automatic storage or scheduled notifications. A nonexistent time is never shifted to an alternative, including for earlier/later choices. Latin, Arabic-Indic and Eastern Arabic digits are supported; the fraction is absent or exactly three digits, without truncation or rounding. Line breaks, whitespace, invalid dates, 24:00, leap seconds, annotations such as [UTC] or [u-ca=iso8601], and numeric offsets as zone names are rejected. Etc/GMT names retain IANA sign semantics: Etc/GMT+5 means -05:00. Historical offsets can retain seconds and target dates can reach 1899 or 2101. Intl data reflects the device; it can differ across devices and standard browser APIs do not expose a tzdb version. Text and time limits do not bound all library and Intl memory. The interface discloses the reference engine size before action; assets load from this site, not a CDN.

Common questions

Does this replace Unix conversion, and what language is the report?

No. This tool resolves a wall-clock time in a named zone, including ambiguity during clock changes. Unix conversion starts with an already determined seconds/milliseconds instant. This report also includes epoch milliseconds but does not accept a Unix number as input. JSON keys and technical TXT labels are fixed in English for exchange; explanatory UI and errors follow the page language. Both downloads are complete UTF-8 without a BOM, and copying TXT requires a user action.

Related tools