Timezone API

Timezone lookup, conversion, and difference calculation

Powered by the IANA Time Zone Database with 596 zones. Get current times, convert between timezones, and calculate differences — all DST-aware and available in both 12-hour and 24-hour formats.

596 IANA Timezones

Complete coverage of the IANA Time Zone Database including all continental zones, UTC offsets, and DST transitions.

Time Conversion

Convert a specific time from one timezone to another with full DST awareness. Specify dates for accurate seasonal offset handling.

Abbreviation Support

Use familiar abbreviations like EST, GMT, PST in addition to full IANA identifiers. Ambiguous abbreviations return helpful suggestions.

Difference Calculation

Calculate the hour difference between any two timezones, accounting for DST and fractional offsets like UTC+5:30 and UTC+5:45.

Use Cases

Built for real-world scenarios

Quick Start

Start using this API in seconds

Timezone Lookup

# Get current time in a timezone
$ curl "https://api.apicrate.io/api/v1/timezones/America/New_York" \
  -H "X-API-Key: YOUR_API_KEY"

# Response
{
  "status": "ok",
  "data": {
    "timezone": "America/New_York",
    "abbreviation": "EST",
    "utc_offset": "-05:00",
    "is_dst": false,
    "current_time_24h": "14:30:00",
    "current_time_12h": "2:30 PM",
    "current_date": "2025-01-15"
  }
}
import requests

response = requests.get(
    "https://api.apicrate.io/api/v1/timezones/America/New_York",
    headers={"X-API-Key": "YOUR_API_KEY"},
)

data = response.json()["data"]
print(data["current_time_12h"])  # "2:30 PM"
print(data["utc_offset"])        # "-05:00"
const res = await fetch("https://api.apicrate.io/api/v1/timezones/America/New_York", {
  headers: { "X-API-Key": "YOUR_API_KEY" },
});

const { data } = await res.json();
console.log(data.current_time_12h);  // "2:30 PM"
console.log(data.is_dst);            // false

Time Conversion

# Convert 9:00 AM New York time to Tokyo
$ curl "https://api.apicrate.io/api/v1/timezones-convert?from=America/New_York&to=Asia/Tokyo&time=09:00" \
  -H "X-API-Key: YOUR_API_KEY"

# Response — note the date changes when crossing midnight
{
  "status": "ok",
  "data": {
    "from_timezone": "America/New_York",
    "to_timezone": "Asia/Tokyo",
    "from_time_12h": "09:00:00 AM",
    "to_time_12h": "11:00:00 PM",
    "from_time_24h": "09:00:00",
    "to_time_24h": "23:00:00",
    "from_date": "2025-01-15",
    "to_date": "2025-01-15"
  }
}
import requests

# Convert time with a specific date (useful for DST accuracy)
response = requests.get(
    "https://api.apicrate.io/api/v1/timezones-convert",
    headers={"X-API-Key": "YOUR_API_KEY"},
    params={
        "from": "America/New_York",
        "to": "Asia/Tokyo",
        "time": "09:00",
        "date": "2025-07-15",  # summer — NYC is in EDT (UTC-4)
    },
)

data = response.json()["data"]
print(f"{data['from_time_12h']} NYC → {data['to_time_12h']} Tokyo")
print(f"Date in Tokyo: {data['to_date']}")
// Convert a meeting time from London to multiple zones
const params = new URLSearchParams({
  from: "Europe/London",
  to: "America/Los_Angeles",
  time: "15:00",
});

const res = await fetch(
  `https://api.apicrate.io/api/v1/timezones-convert?${params}`,
  { headers: { "X-API-Key": "YOUR_API_KEY" } }
);

const { data } = await res.json();
console.log(`${data.from_time_12h} London = ${data.to_time_12h} LA`);

Hour Difference

# Calculate offset between two timezones
$ curl "https://api.apicrate.io/api/v1/timezones-diff?from=Europe/London&to=America/Los_Angeles" \
  -H "X-API-Key: YOUR_API_KEY"

# Response
{
  "status": "ok",
  "data": {
    "from_timezone": "Europe/London",
    "to_timezone": "America/Los_Angeles",
    "diff_hours": -8.0,
    "diff_formatted": "-8h 00m",
    "from_current_time_24h": "19:30:45",
    "to_current_time_24h": "11:30:45"
  }
}
import requests

# Check the offset between India and Nepal (fractional offsets)
response = requests.get(
    "https://api.apicrate.io/api/v1/timezones-diff",
    headers={"X-API-Key": "YOUR_API_KEY"},
    params={"from": "Asia/Kolkata", "to": "Asia/Kathmandu"},
)

data = response.json()["data"]
print(data["diff_formatted"])  # "+0h 15m"
print(data["diff_hours"])      # 0.25
// Find the hour difference for scheduling across offices
const res = await fetch(
  "https://api.apicrate.io/api/v1/timezones-diff?from=America/New_York&to=Europe/Berlin",
  { headers: { "X-API-Key": "YOUR_API_KEY" } }
);

const { data } = await res.json();
console.log(data.diff_formatted);  // "+6h 00m"
console.log(`NYC: ${data.from_current_time_24h}, Berlin: ${data.to_current_time_24h}`);
Endpoints

Available endpoints

GET /api/v1/timezones List timezones
GET /api/v1/timezones/{tz_name} Get timezone details
GET /api/v1/timezones-diff Get hour difference between timezones
GET /api/v1/timezones-convert Convert time between timezones
FAQ

Frequently asked questions

Does the API handle daylight saving time (DST)?

Yes. All endpoints are fully DST-aware. The is_dst flag indicates whether a timezone is currently observing daylight saving time.

Can I use timezone abbreviations like EST or PST?

Yes. All endpoints accept common abbreviations. If an abbreviation is ambiguous (e.g., CST maps to multiple zones), the API returns a 400 error listing all matching IANA zones.

What about fractional UTC offsets?

The API fully supports fractional offsets like UTC+5:30 (India), UTC+5:45 (Nepal), and UTC+9:30 (Central Australia).

How do I list all timezones in a specific region?

Use the region parameter on /api/v1/timezones — for example, ?region=Europe returns all European timezones.

Ready to start building?

Create a free account and start making requests in under a minute.

Sign Up Free → View Documentation