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.
Complete coverage of the IANA Time Zone Database including all continental zones, UTC offsets, and DST transitions.
Convert a specific time from one timezone to another with full DST awareness. Specify dates for accurate seasonal offset handling.
Use familiar abbreviations like EST, GMT, PST in addition to
full IANA identifiers. Ambiguous abbreviations return helpful suggestions.
Calculate the hour difference between any two timezones, accounting for DST and fractional offsets like UTC+5:30 and UTC+5:45.
# 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
# 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`);
# 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}`);
/api/v1/timezones
List timezones
/api/v1/timezones/{tz_name}
Get timezone details
/api/v1/timezones-diff
Get hour difference between timezones
/api/v1/timezones-convert
Convert time between timezones
Yes. All endpoints are fully DST-aware. The is_dst flag indicates
whether a timezone is currently observing daylight saving time.
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.
The API fully supports fractional offsets like UTC+5:30 (India), UTC+5:45 (Nepal), and UTC+9:30 (Central Australia).
Use the region parameter on /api/v1/timezones — for example,
?region=Europe returns all European timezones.
Create a free account and start making requests in under a minute.