Timeplain
Time Zone Converter
Convert a local date and time between named time zones. Check UTC offsets, compare both answers for repeated times, and identify daylight-saving gaps.
Convert a local time between two zones
Choose Date / Time, enter a local date and clock time, then select the source and destination zones. The source zone tells the converter which instant you mean. The destination zone changes how that instant is displayed.
Use names such as America/New_York and Europe/London. A fixed UTC offset does not capture seasonal clock changes. The date matters: two locations can change their clocks on different weekends.
When a local time has two answers
The initial example is November 1, 2026 at 01:30 in America/New_York. That time occurs twice when clocks move back. The converter shows both occurrences instead of silently choosing one.
- Earlier occurrence: 01:30 at UTC−04:00 is 05:30 UTC and 05:30 in Europe/London.
- Later occurrence: 01:30 at UTC−05:00 is 06:30 UTC and 06:30 in Europe/London.
These are different instants, one hour apart. Ask which offset or occurrence was intended before using a repeated time in a schedule or log.
Result
- Timezone
- —
- Offset
- —
Earlier occurrence
—
- Timezone
- —
- Offset
- —
- Unix timestamp
- —
Later occurrence
—
- Timezone
- —
- Offset
- —
- Unix timestamp
- —
Other formats
Convert a time to see its formats.
- Unix seconds
—- Unix milliseconds
—- ISO 8601 — UTC
—- ISO 8601 — destination timezone
—- RFC 3339 — UTC
—- HTTP date — GMT
—
Earlier occurrence
- Unix seconds
—- Unix milliseconds
—- ISO 8601 — UTC
—- ISO 8601 — destination timezone
—- RFC 3339 — UTC
—- HTTP date — GMT
—
Later occurrence
- Unix seconds
—- Unix milliseconds
—- ISO 8601 — UTC
—- ISO 8601 — destination timezone
—- RFC 3339 — UTC
—- HTTP date — GMT
—
ISO 8601 and RFC 3339 UTC values match for ordinary dates. HTTP dates use whole seconds. RFC 3339 and HTTP dates require a four-digit year.
Show code for your converted time
Your converted time in code
Examples use the resolved instant and destination timezone. JavaScript uses Unix milliseconds; PHP parses an explicit UTC date; Python uses timezone-aware dates. Ruby uses TZInfo for named time zones. Java and C++ start from Unix milliseconds. None rely on your computer’s default timezone.
Convert a time to generate an example.
Expected output
Earlier occurrence
Expected output
Later occurrence
Expected output
Repeated local times get two separate examples. These reproduce your resolved conversion; they do not validate arbitrary local-time input. JavaScript display text and timezone rules can vary with runtime locale data. PHP examples support four-digit years. Python requires 3.9+ and supports years 1–9999. If timezone data is missing, install it with python -m pip install tzdata. Ruby requires the TZInfo 2.x gem and timezone data (install tzinfo-data if needed). Ruby examples support years 0000–9999 in UTC and the destination timezone. Java requires 8+. C++ requires a C++20 standard library with chrono timezone support, std::format, and installed IANA timezone data. Java and C++ examples support years 0000–9999 in UTC and the destination timezone.
When a local time does not exist
Try March 8, 2026 at 02:30 in America/New_York. Clocks move forward across that hour, so there is no corresponding instant. Timeplain reports the gap rather than shifting the input to another time.
Does changing timezone change a timestamp?
No. A Unix timestamp identifies an instant. Changing its display zone changes the local date, clock time, and offset, but not the timestamp. If you already have Unix seconds or milliseconds, use the Unix timestamp converter.
Use the result in an application
Copy an ISO 8601 value with its offset, or generate code for the resolved instant. See the Python and JavaScript guides for explicit timezone handling. Future conversions follow the timezone rules available in your browser; governments can change those rules.
Feedback
Have a suggestion, spotted a problem, or need another date format? Help shape what comes next for Timeplain.