{
  "id": "time-zone-converter",
  "version": "482b055f0ad1",
  "status": "published",
  "name": "Time Zone Converter",
  "question": "Convert a time between time zones",
  "summary": "Converts a time and date in one time zone to the time and date in another, with both UTC offsets and when the difference next changes.",
  "category": "days",
  "subcategory": "time-and-hours",
  "url": "https://www.acalculator.org/days/time-zone-converter",
  "markdown": "https://www.acalculator.org/days/time-zone-converter.md",
  "kind": "function",
  "method": "Find the instant (UTC) at which the From zone’s clocks show the date and time, then read the To zone’s clock at that instant; both offsets come from the browser’s IANA time zone data.",
  "assumptions": [
    "Zones are IANA tzdata names (tzdata 2026a); the browser supplies their offsets and daylight saving rules, so a rule change arrives with a browser update.",
    "A time that does not exist in the From zone (skipped when clocks spring forward) has no answer. A time that occurs twice (when clocks fall back) shows both results, earlier first, for every output that differs.",
    "The difference is the To zone’s UTC offset minus the From zone’s, as “3 hours ahead”, “9 hours 30 minutes behind”, or “the same time”.",
    "“Difference changes next” is the first moment after the typed time, within 366 days, at which the difference changes: the new difference, then that moment as the From zone’s local date and time (“2 hours ahead from Saturday, October 31, 2026, 11:00 PM”).",
    "Each zone shows its name and abbreviation from the browser’s Unicode CLDR English names (left out when CLDR has none), then its offset as UTC+hh:mm or UTC−hh:mm.",
    "Dates from 2000 to 2040 work."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "at": {
        "title": "Time",
        "description": "The clock time in the From zone.",
        "type": "string",
        "pattern": "^\\d{2}:\\d{2}(:\\d{2})?$"
      },
      "from": {
        "title": "From",
        "description": "The time zone of that time (IANA name).",
        "type": "string",
        "enum": [
          "UTC",
          "America/Adak",
          "Australia/Adelaide",
          "Asia/Almaty",
          "America/Anchorage",
          "Pacific/Apia",
          "Europe/Athens",
          "Pacific/Auckland",
          "Atlantic/Azores",
          "Asia/Baghdad",
          "Asia/Bangkok",
          "Asia/Shanghai",
          "Europe/Berlin",
          "America/Bogota",
          "Australia/Brisbane",
          "Europe/Brussels",
          "America/Argentina/Buenos_Aires",
          "Africa/Cairo",
          "America/Cancun",
          "Atlantic/Cape_Verde",
          "America/Caracas",
          "Africa/Casablanca",
          "Pacific/Chatham",
          "America/Chicago",
          "Asia/Colombo",
          "Australia/Darwin",
          "America/Denver",
          "Asia/Dhaka",
          "Asia/Dubai",
          "Europe/Dublin",
          "America/Edmonton",
          "Australia/Eucla",
          "Pacific/Fiji",
          "Pacific/Guam",
          "America/Halifax",
          "America/Havana",
          "Europe/Helsinki",
          "Asia/Ho_Chi_Minh",
          "Asia/Hong_Kong",
          "Pacific/Honolulu",
          "Asia/Kolkata",
          "Europe/Istanbul",
          "Asia/Jakarta",
          "Asia/Jerusalem",
          "Africa/Johannesburg",
          "Asia/Kabul",
          "Europe/Kaliningrad",
          "Asia/Karachi",
          "Asia/Kathmandu",
          "Pacific/Kiritimati",
          "Europe/Kyiv",
          "Africa/Lagos",
          "America/Lima",
          "Europe/Lisbon",
          "Europe/London",
          "Australia/Lord_Howe",
          "America/Los_Angeles",
          "Europe/Madrid",
          "Asia/Manila",
          "Pacific/Marquesas",
          "Australia/Melbourne",
          "America/Mexico_City",
          "Europe/Moscow",
          "Africa/Nairobi",
          "America/New_York",
          "America/St_Johns",
          "America/Nuuk",
          "Pacific/Pago_Pago",
          "Europe/Paris",
          "Australia/Perth",
          "America/Phoenix",
          "Atlantic/Reykjavik",
          "America/Regina",
          "Asia/Riyadh",
          "Europe/Rome",
          "America/Puerto_Rico",
          "America/Santiago",
          "America/Sao_Paulo",
          "Asia/Seoul",
          "Asia/Singapore",
          "Europe/Stockholm",
          "Australia/Sydney",
          "Pacific/Tahiti",
          "Asia/Taipei",
          "Asia/Tashkent",
          "Asia/Tehran",
          "America/Tijuana",
          "Asia/Tokyo",
          "Pacific/Tongatapu",
          "America/Toronto",
          "America/Vancouver",
          "Asia/Vladivostok",
          "Europe/Warsaw",
          "America/Whitehorse",
          "America/Winnipeg",
          "Asia/Yangon",
          "Asia/Yekaterinburg",
          "Europe/Zurich"
        ]
      },
      "to": {
        "title": "To",
        "description": "The time zone to convert to (IANA name).",
        "type": "string",
        "enum": [
          "UTC",
          "America/Adak",
          "Australia/Adelaide",
          "Asia/Almaty",
          "America/Anchorage",
          "Pacific/Apia",
          "Europe/Athens",
          "Pacific/Auckland",
          "Atlantic/Azores",
          "Asia/Baghdad",
          "Asia/Bangkok",
          "Asia/Shanghai",
          "Europe/Berlin",
          "America/Bogota",
          "Australia/Brisbane",
          "Europe/Brussels",
          "America/Argentina/Buenos_Aires",
          "Africa/Cairo",
          "America/Cancun",
          "Atlantic/Cape_Verde",
          "America/Caracas",
          "Africa/Casablanca",
          "Pacific/Chatham",
          "America/Chicago",
          "Asia/Colombo",
          "Australia/Darwin",
          "America/Denver",
          "Asia/Dhaka",
          "Asia/Dubai",
          "Europe/Dublin",
          "America/Edmonton",
          "Australia/Eucla",
          "Pacific/Fiji",
          "Pacific/Guam",
          "America/Halifax",
          "America/Havana",
          "Europe/Helsinki",
          "Asia/Ho_Chi_Minh",
          "Asia/Hong_Kong",
          "Pacific/Honolulu",
          "Asia/Kolkata",
          "Europe/Istanbul",
          "Asia/Jakarta",
          "Asia/Jerusalem",
          "Africa/Johannesburg",
          "Asia/Kabul",
          "Europe/Kaliningrad",
          "Asia/Karachi",
          "Asia/Kathmandu",
          "Pacific/Kiritimati",
          "Europe/Kyiv",
          "Africa/Lagos",
          "America/Lima",
          "Europe/Lisbon",
          "Europe/London",
          "Australia/Lord_Howe",
          "America/Los_Angeles",
          "Europe/Madrid",
          "Asia/Manila",
          "Pacific/Marquesas",
          "Australia/Melbourne",
          "America/Mexico_City",
          "Europe/Moscow",
          "Africa/Nairobi",
          "America/New_York",
          "America/St_Johns",
          "America/Nuuk",
          "Pacific/Pago_Pago",
          "Europe/Paris",
          "Australia/Perth",
          "America/Phoenix",
          "Atlantic/Reykjavik",
          "America/Regina",
          "Asia/Riyadh",
          "Europe/Rome",
          "America/Puerto_Rico",
          "America/Santiago",
          "America/Sao_Paulo",
          "Asia/Seoul",
          "Asia/Singapore",
          "Europe/Stockholm",
          "Australia/Sydney",
          "Pacific/Tahiti",
          "Asia/Taipei",
          "Asia/Tashkent",
          "Asia/Tehran",
          "America/Tijuana",
          "Asia/Tokyo",
          "Pacific/Tongatapu",
          "America/Toronto",
          "America/Vancouver",
          "Asia/Vladivostok",
          "Europe/Warsaw",
          "America/Whitehorse",
          "America/Winnipeg",
          "Asia/Yangon",
          "Asia/Yekaterinburg",
          "Europe/Zurich"
        ]
      },
      "on": {
        "title": "Date",
        "description": "The date in the From zone. Today, unless you change it.",
        "type": "string",
        "format": "date"
      }
    }
  },
  "outputs": {
    "time": {
      "label": "Time there",
      "description": "The clock time in the To zone at that moment.",
      "format": "time"
    },
    "date": {
      "label": "Date there",
      "description": "The date in the To zone at that moment.",
      "format": "date-long"
    },
    "difference": {
      "label": "The To zone is",
      "description": "How far the To zone’s clock is ahead of or behind the From zone’s clock at that moment.",
      "format": "text"
    },
    "fromZone": {
      "label": "From zone",
      "description": "The From zone’s name, abbreviation, and UTC offset at that moment.",
      "format": "text"
    },
    "toZone": {
      "label": "To zone",
      "description": "The To zone’s name, abbreviation, and UTC offset at that moment.",
      "format": "text"
    },
    "next": {
      "label": "Difference changes next",
      "description": "The next difference and when it starts, in the From zone's local time, within 366 days.",
      "format": "text"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "at": "09:00",
      "from": "America/New_York",
      "to": "Europe/London",
      "on": "2026-09-30"
    },
    "outputs": {
      "time": "14:00",
      "date": "2026-09-30",
      "difference": "5 hours ahead",
      "fromZone": "Eastern Daylight Time (EDT), UTC−04:00",
      "toZone": "British Summer Time (BST), UTC+01:00",
      "next": "4 hours ahead from Saturday, October 24, 2026, 9:00 PM"
    },
    "text": "9:00 AM on September 30, 2026 in New York (US Eastern) is 2:00 PM on Wednesday, September 30, 2026 in London, UK."
  },
  "examples": [
    {
      "given": {
        "at": "09:00",
        "from": "America/New_York",
        "to": "Europe/London",
        "on": "2026-07-01"
      },
      "expect": {
        "time": "14:00",
        "date": "2026-07-01",
        "difference": "5 hours ahead",
        "fromZone": "Eastern Daylight Time (EDT), UTC−04:00",
        "toZone": "British Summer Time (BST), UTC+01:00",
        "next": "4 hours ahead from Saturday, October 24, 2026, 9:00 PM"
      },
      "source": "IANA Time Zone Database, tzdata 2026a (https://www.iana.org/time-zones); Python 3 zoneinfo with tzdata 2026a; zone names from Unicode CLDR English (docs/progress/WP-46/truth.py)"
    },
    {
      "given": {
        "at": "18:00",
        "from": "America/New_York",
        "to": "Australia/Lord_Howe",
        "on": "2026-12-01"
      },
      "expect": {
        "time": "10:00",
        "date": "2026-12-02",
        "difference": "16 hours ahead",
        "fromZone": "Eastern Standard Time (EST), UTC−05:00",
        "toZone": "Lord Howe Daylight Time (LHDT), UTC+11:00",
        "next": "15 hours ahead from Sunday, March 14, 2027, 3:00 AM"
      },
      "source": "IANA Time Zone Database, tzdata 2026a (https://www.iana.org/time-zones); Python 3 zoneinfo with tzdata 2026a (a half-hour daylight saving zone); zone names from Unicode CLDR English (docs/progress/WP-46/truth.py)"
    }
  ],
  "sources": [
    "IANA Time Zone Database, tzdata 2026a (https://www.iana.org/time-zones)"
  ],
  "related": [
    "pdt-to-est",
    "utc-to-pst",
    "ist-to-est",
    "est-to-ist",
    "us-time-zones",
    "time-zones"
  ],
  "changelog": []
}
