← All Tools ZeroDataUpload Home

TimeShift

300+ IANA time zones, world clocks, meeting planner, timestamp decoder & batch CSV — all DST-aware via native Intl API

Launch TimeShift →
TimeShift

Table of Contents

  1. Overview
  2. Key Features
  3. The 5 Tabs Explained
  4. Why Native Intl API
  5. How to Use
  6. Frequently Asked Questions
  7. Privacy & Security

Overview

TimeShift is a comprehensive time zone utility suite that runs entirely in your web browser. It provides five specialized tabs — Converter, World Clock, Meeting Planner, Timestamp Tools, and Batch Conversion — each designed for a distinct workflow. Whether you need to convert a single time between zones, monitor live clocks across cities, find overlapping business hours for a global team, decode Unix timestamps, or batch-process thousands of timestamps from a CSV file, TimeShift handles it all without any external date libraries or server-side processing.

At its core, TimeShift leverages the browser’s native Intl.DateTimeFormat API with the timeZone parameter, providing access to over 300 IANA time zones via Intl.supportedValuesOf('timeZone'). This means every conversion is automatically DST-aware — the browser’s built-in timezone engine, updated through your operating system, handles all daylight saving time transitions without any shipped timezone data or stale rules. The result is a zero-dependency, always-current timezone tool that works entirely offline after the first page load.

TimeShift uses the Continent/City naming convention (e.g., America/New_York instead of “EST”) because abbreviations like EST, CST, and IST are ambiguous — multiple time zones worldwide share the same abbreviation. IANA identifiers are unambiguous and inherently encode DST rules. A curated list of 32 popular zones appears first in every dropdown, covering the Americas (9 zones), Europe (8), Asia (9), Australia/Pacific (4), and Africa (3), so the most common conversions are always one click away.

Key Features

300+ IANA Time Zones

Intl.supportedValuesOf('timeZone') provides the complete IANA database. 32 popular zones are starred for quick access. All zones use unambiguous Continent/City naming (America/New_York, not EST).

DST-Aware Conversion

Native Intl.DateTimeFormat handles all DST transitions automatically. No shipped timezone data, no stale rules — always current via OS updates. Conversions are accurate to the second.

World Clock Dashboard

Live-updating city clocks with 1-second intervals, day/night emoji indicators, customizable city list via modal picker with search, and localStorage persistence across sessions.

Meeting Planner

Overlap detection across multiple time zones: converts configurable work hours to UTC, finds the intersection of all zones’ business hours, and displays a color-coded 24-hour timeline.

Timestamp Decoder

Auto-detects Unix seconds (10-digit), Unix milliseconds (13-digit), ISO 8601, and date strings. Shows relative time like “5 minutes ago” or “in 3 hours” alongside all standard formats.

Batch Conversion

Upload CSV/TXT with up to 10,000 timestamps, auto-detect headers, convert between any two time zones with format-aware parsing, and download results as a CSV file.

ICS Calendar Export

Standard iCalendar format (VCALENDAR with VEVENT, DTSTART/DTEND in UTC, SUMMARY, DESCRIPTION) for individual conversions and meeting overlap slots — imports into Google Calendar, Outlook, Apple Calendar.

URL Sharing

Shareable links with query parameters (?from=&to=&date=&time=) restore the exact conversion state from the URL. Bookmark or share conversions with anyone.

The 5 Tabs Explained

Tab 1: Converter

The Converter tab is the primary interface for single time zone conversions. It presents a date picker, a time picker, and two zone selectors labeled “From” and “To.” Each zone dropdown lists over 300 IANA time zones sourced from Intl.supportedValuesOf('timeZone'), with 32 popular zones starred at the top of the list for quick access. A swap button (⇔) reverses the From and To zones instantly, and a “Use Current Time” button auto-fills the date and time fields with your detected local time.

When you select zones and a date/time, the result panel displays the converted time in 12-hour format with AM/PM, the full date including weekday, the UTC offset for both the source and target zones, and a color-coded time difference tag: green for positive differences (+), red for negative (-), and neutral gray for identical offsets (=). Three action buttons appear beneath the result: Copy (copies the formatted result to clipboard), Download ICS (generates an iCalendar file with the conversion as a one-hour event using UTC-formatted DTSTART and DTEND), and Share URL (builds a link with query parameters ?from=America/New_York&to=Europe/London&date=2024-03-15&time=09:30).

The Converter tab is fully DST-aware because it delegates all timezone math to Intl.DateTimeFormat with the timeZone option. When you convert a time that falls on a DST boundary — for example, March 10, 2024 at 2:00 AM in America/New_York — the browser’s built-in engine correctly handles the spring-forward or fall-back transition. No manual DST offset tables are needed. URL parameters are parsed on page load, so shared links restore the exact conversion state for the recipient.

Tab 2: World Clock

The World Clock tab displays a grid of city clock cards that update every 1 second via setInterval(1000). Each card shows the city name and region, the current time in HH:MM:SS AM/PM format, the current date (e.g., Wed, Mar 15), a UTC offset label, and a day/night emoji indicator (☀️ for 6 AM to 10 PM local time, 🌙 otherwise). The time display uses text-only DOM updates rather than re-rendering the entire card structure each second, ensuring smooth performance even with many cities.

By default, four cities are displayed: America/New_York, Europe/London, Asia/Tokyo, and Australia/Sydney. You can add more cities via the Add City button, which opens a modal picker with a search field. The search works across city names, zone IDs, and UTC offsets, with popular zones appearing first. Results are limited to 100 matches for performance. Each card has a remove button (✕) to delete it from the dashboard. Your city selections are persisted in localStorage under the key tz-world-clocks as a JSON array, so your custom dashboard survives page reloads and browser restarts.

City names are derived from IANA zone identifiers by splitting on the last / character and replacing underscores with spaces. A CITY_RENAMES mapping handles legacy names: Calcutta becomes Kolkata, Saigon becomes Ho Chi Minh, and Rangoon becomes Yangon, matching modern geographical conventions.

Tab 3: Meeting Planner

The Meeting Planner tab helps distributed teams find overlapping work hours across multiple time zones. You add zones using a dropdown and an Add button, and each added zone appears as a chip with a remove button. Two selectors let you configure the work hours range: a start hour (selectable from 6 AM to 10 AM, default 9 AM) and an end hour (selectable from 4 PM to 8 PM, default 5 PM).

The core visualization is a 24-hour UTC timeline table. Each row represents a time zone, and each column represents a UTC hour from 0 to 23. Cells are color-coded with four distinct states: daytime hours (local 6:00–22:00) get a light background, nighttime hours (local 22:00–6:00) get a dark background, work hours within daytime get an accent-light background, and overlap hours — where ALL added zones are simultaneously within their work hours — are highlighted with a full bright accent color.

The overlap algorithm works as follows: for each UTC hour (0 through 23), the tool converts that UTC hour to the local hour in every added zone using Intl.DateTimeFormat. It then checks whether that local hour falls within the configured work hours range. If ALL zones pass this check for a given UTC hour, that hour is marked as an overlap hour. This is an intersection operation — only hours where every single participant is within business hours qualify. A legend below the timeline explains all four color states.

Two export options are available: Copy Overlap Hours generates a text summary listing each overlap UTC hour with the corresponding local time in every zone, and Download ICS creates an iCalendar event for the first overlap hour scheduled for the next day, ready to import into Google Calendar, Outlook, or Apple Calendar.

Tab 4: Timestamp Tools

The Timestamp Tools tab has two sections: a live format display and a timestamp decoder. The live display updates every 1 second and shows the current time in six standard formats simultaneously:

Each format has a dedicated Copy button that provides visual feedback (a checkmark ✓ for 1.5 seconds) confirming the copy to clipboard.

The Timestamp Decoder accepts any timestamp input and auto-detects its format. A 10-digit number is interpreted as Unix seconds and multiplied by 1000 for JavaScript’s millisecond-based Date constructor. A 13-digit number is treated as Unix milliseconds and used directly. Anything else is passed to JavaScript’s Date auto-parser for ISO 8601, RFC 2822, and common date string formats. The decoder output displays the detected format, the timestamp in UTC, the local time equivalent, the Unix seconds value, the ISO 8601 representation, and a human-friendly relative time string such as “5 minutes ago,” “in 3 hours,” or “just now.”

Tab 5: Batch Conversion

The Batch tab handles bulk timestamp conversion between time zones. It provides source and target timezone selectors, a file upload area (supporting drag-and-drop or browse for CSV/TXT files), a manual paste area for entering one timestamp per line, and a “Load Sample Data” button that populates the input with mixed timestamp formats for testing. When a file is uploaded, a preview of the first 2,000 characters is displayed for verification.

The parser auto-detects header rows by checking if a line contains the words “date,” “time,” or “timestamp” (case-insensitive), and skips those lines. For CSV files, it extracts the first date-like column from each row. The tool handles four input formats: 10-digit Unix timestamps, 13-digit Unix millisecond timestamps, ISO 8601 date strings, and general date strings parseable by JavaScript’s Date constructor.

The timezone adjustment algorithm works by parsing each timestamp, calculating the UTC offset difference between the source and target zones, and applying the adjustment: adjustedDate = parsedDate + (localOffset - sourceOffset) * 60000. Up to 10,000 rows can be processed in a single batch. Results are displayed in a table with three columns: Original, Converted, and UTC Offset. Entries that cannot be parsed are marked with “PARSE ERROR” in the Converted column rather than silently dropping rows. A Download CSV button exports the complete results table.

Why Native Intl API

TimeShift deliberately avoids popular date libraries like Moment.js, date-fns, Luxon, or Day.js. This is not an oversight — it is a core architectural decision that provides significant advantages:

Zero Bundle Size

Moment.js with the timezone plugin ships approximately 40 KB of minified JavaScript plus a 20+ KB timezone data blob containing IANA rules. date-fns/tz and Luxon carry similar overhead. TimeShift uses exactly 0 bytes of timezone data because the data already lives in your browser’s ICU (International Components for Unicode) library, which is part of the JavaScript engine itself. The Intl.DateTimeFormat constructor with a timeZone option accesses this data natively, and Intl.supportedValuesOf('timeZone') enumerates all available zone identifiers — no external package required.

Always Current, Never Stale

IANA time zone rules change frequently. Countries modify their DST schedules, create new time zones, or abolish daylight saving time entirely. Libraries that ship timezone data become stale the moment a rule changes — you must update the library and redeploy to stay accurate. The native Intl API, by contrast, is updated through your operating system. When Microsoft, Apple, or your Linux distribution pushes an OS update with new timezone data, every browser on that system immediately reflects the change. TimeShift benefits from this automatically, with zero redeployment needed.

Native C++ Performance

The Intl API is implemented in C++ within the browser engine (V8 in Chrome/Edge, SpiderMonkey in Firefox, JavaScriptCore in Safari). Timezone lookups and DST boundary calculations execute as native code, not interpreted JavaScript. For bulk operations like the Batch tab’s 10,000-row processing, this performance difference is meaningful. The browser’s ICU library uses optimized binary search over timezone transition tables, far faster than any JavaScript reimplementation of the same logic.

Browser Compatibility

Intl.DateTimeFormat with the timeZone parameter is supported in all modern browsers: Chrome 24+, Firefox 29+, Safari 10+, and Edge 12+. The newer Intl.supportedValuesOf('timeZone') method is supported in Chrome 99+, Firefox 93+, Safari 15.4+, and Edge 99+. Given these are all 2022-era minimum versions, coverage is effectively universal for current users.

Key Utility Functions

TimeShift builds its entire feature set on a small set of Intl-based utility functions:

How to Use

  1. Open TimeShift — The Converter tab is active by default with your local timezone auto-detected as the “From” zone. No installation, no account creation, no external dependencies to load.
  2. Select a Target Zone — Choose the “To” zone from the dropdown. The 32 most popular zones (covering all major world cities) appear first, followed by the full 300+ IANA zone list searchable by city name, region, or UTC offset.
  3. Enter Date and Time — Pick a date and time using the native date/time pickers, or click “Use Current Time” to auto-fill with the current moment. The converted result appears instantly with UTC offsets for both zones and a color-coded time difference indicator.
  4. Switch to World Clock — Click the World Clock tab to track multiple cities simultaneously. Add cities via the search modal, remove them with the ✕ button. All clocks update every second with live time, date, and day/night status.
  5. Plan a Meeting — Open the Meeting Planner tab, add the time zones of all participants, and configure work hours (default 9 AM to 5 PM). The 24-hour timeline instantly highlights overlap hours where everyone is available. Copy the summary or export an ICS calendar event.
  6. Decode Timestamps — The Timestamps tab shows live Unix/ISO/RFC formats updating every second. Paste any timestamp into the decoder to auto-detect its format and see the UTC time, local time, and relative time (“5 minutes ago”).
  7. Batch Convert — Upload a CSV or TXT file (or paste timestamps manually) in the Batch tab. Select source and target zones, and TimeShift converts up to 10,000 rows at once. Download the results as a CSV file.

Frequently Asked Questions

How many time zones are supported?
TimeShift supports over 300 IANA time zones via the Intl.supportedValuesOf('timeZone') method, which returns the complete worldwide IANA Time Zone Database as recognized by your browser. The exact count varies slightly between browsers and OS versions (typically 330–440 zones), but all major cities, regions, and territories are covered. A curated list of 32 popular zones spanning all continents appears at the top of every dropdown for quick access.
How is DST (Daylight Saving Time) handled?
TimeShift uses the native Intl.DateTimeFormat API with the timeZone parameter for all conversions. The browser’s built-in timezone engine — implemented in C++ as part of the ICU library — handles all DST transitions automatically. When you convert a time that crosses a DST boundary (for example, “spring forward” in March or “fall back” in November for US zones), the conversion accounts for the shift correctly. Because this data comes from your operating system, it is always current: when your OS receives an update with new DST rules, TimeShift reflects those changes immediately with zero redeployment.
Why does TimeShift use Continent/City names instead of abbreviations like EST or PST?
Time zone abbreviations are ambiguous. “EST” could refer to Eastern Standard Time in the US (UTC-5), Eastern Standard Time in Australia (UTC+10), or Eastern Standard Time in Brazil — at least 5 different zones worldwide use the same abbreviation. “CST” is even worse, shared by Central Standard Time (US), China Standard Time, and Cuba Standard Time. IANA identifiers like America/New_York are globally unique, unambiguous, and encode the complete DST ruleset for that location. TimeShift uses these identifiers exclusively to prevent any confusion in conversions.
How does the meeting overlap algorithm work?
The Meeting Planner checks every UTC hour from 0 to 23. For each UTC hour, it converts that hour to the local time in every added zone using Intl.DateTimeFormat. It then checks whether that local hour falls within the configured work hours (default 9 AM to 5 PM). If ALL zones pass this work-hours check for a given UTC hour, that hour is classified as an “overlap” hour — meaning every participant is within their business hours. This is a set intersection: only hours where every single zone qualifies are highlighted. The result is the maximum window during which a meeting can be scheduled without anyone working outside their configured hours.
What timestamp formats can the decoder handle?
The Timestamp Decoder auto-detects five major format families. A 10-digit number (e.g., 1710510600) is interpreted as Unix seconds and multiplied by 1000. A 13-digit number (e.g., 1710510600000) is treated as Unix milliseconds and used directly. ISO 8601 strings (e.g., 2024-03-15T14:30:00Z or 2024-03-15T14:30:00+05:30) are parsed natively. RFC 2822 strings (e.g., Fri, 15 Mar 2024 14:30:00 GMT) are handled by JavaScript’s Date constructor. General date strings (e.g., March 15, 2024 2:30 PM) are auto-parsed as a fallback. The decoder displays the detected format, UTC and local times, Unix seconds, ISO 8601, and a relative time string.
Can I batch-convert timestamps from a CSV file?
Yes. The Batch tab accepts CSV or TXT files via drag-and-drop or file browse, as well as manually pasted text (one timestamp per line). It auto-detects and skips header rows containing words like “date,” “time,” or “timestamp.” For CSV files, it extracts the first date-like column. The tool handles 10-digit Unix timestamps, 13-digit Unix milliseconds, ISO 8601 strings, and general date strings. Up to 10,000 rows can be processed in a single batch. Results appear in a table with Original, Converted, and UTC Offset columns, and unparseable entries are flagged as “PARSE ERROR” rather than silently dropped. The entire results table can be downloaded as a CSV file.
What is the ICS export and how do I use it?
ICS (iCalendar) is the universal calendar event format supported by Google Calendar, Microsoft Outlook, Apple Calendar, and virtually every calendar application. TimeShift generates ICS files with a standard structure: BEGIN:VCALENDAR containing a BEGIN:VEVENT with DTSTART and DTEND in UTC format (YYYYMMDDTHHmmssZ), a SUMMARY describing the event, and a DESCRIPTION with conversion details. Events default to a one-hour duration. In the Converter tab, the ICS captures your converted time as a calendar event. In the Meeting Planner, it creates an event for the first available overlap hour scheduled for the next day. Simply download the .ics file and double-click it — your calendar app will prompt you to add the event.
What are shareable URLs and how do they work?
The Converter tab’s Share URL button generates a link containing your conversion parameters as query strings — for example: ?from=America/New_York&to=Europe/London&date=2024-03-15&time=09:30. When anyone opens this URL, TimeShift reads the query parameters on page load and automatically populates the From zone, To zone, date, and time fields, then performs the conversion. This means you can bookmark frequent conversions, share them in Slack or email, or embed them in documentation — the recipient sees exactly the same conversion result without any manual input.
Why does TimeShift not use Moment.js or date-fns?
Three reasons: bundle size, freshness, and performance. Moment.js with timezone support adds approximately 60 KB to a page and ships a static copy of the IANA timezone database that becomes stale whenever rules change. date-fns and Luxon have similar costs. The native Intl.DateTimeFormat API used by TimeShift adds 0 bytes — it is built into the browser engine. Its timezone data comes from the OS and is always current. And it executes as compiled C++ code rather than interpreted JavaScript, making it significantly faster for bulk operations like the 10,000-row Batch tab. In short, libraries solve a problem that browsers now handle natively.
Is my data safe? Does TimeShift contact any servers?
All timezone calculations are performed using the native Intl API — there are zero external API requests, zero network calls, and zero data transmissions. The only data stored is your world clock city preferences, saved in your browser’s localStorage under the key tz-world-clocks. Batch CSV files are processed entirely in-memory using JavaScript and are never uploaded to any server. Shareable URLs contain only timezone identifiers and timestamps in the URL itself — no data is sent to a backend. Your scheduling data, timestamps, meeting plans, and converted files remain completely on your device.

Privacy & Security

Your Data Never Leaves Your Device

TimeShift uses your browser’s native Intl.DateTimeFormat API for all timezone calculations — no external timezone APIs, no date libraries, no server processing. The only data stored is your world clock city preferences (in localStorage under tz-world-clocks). Batch CSV files are processed entirely in-memory and are never uploaded. Shareable URLs encode conversion parameters in the URL string itself, not on any server. ICS calendar files are generated client-side and downloaded directly to your device. Your scheduling data, timestamps, meeting plans, and batch conversion files remain completely private and never leave your browser.

Ready to try TimeShift? It’s free, private, and runs entirely in your browser.

Launch TimeShift →

Related

Milan Salvi

Milan Salvi

Founder, Leena Software Solutions

Milan is the founder of ZeroDataUpload and Leena Software Solutions, building privacy-first browser tools that process everything client-side. View all articles ยท About the author.

Last Updated: March 26, 2026