Time API

Local time, timezone lookup, and conversion.

Get the current time in UTC, in an IANA timezone, or for a place. Every answer includes at, an ISO date and time with its UTC offset, and unix, the same instant in whole seconds since the Unix epoch. Timezone, offset, and daylight saving are included on every plan. Paid plans also include numeric offsets, seasonal clock changes and a friendly zone name.

Omit at for now. Pass an ISO timestamp with Z or a UTC offset for a specific instant. The fixed timestamps in these examples make their responses reproducible.

UTCCopy link

The current time in UTC. Optional ?at= selects a specific instant

Parameters

latnumber · query · optional

Latitude. Requires lon; omit both for UTC

Range: -90 to 90

lonnumber · query · optional

Longitude. Requires lat; omit both for UTC

Range: -180 to 180

ipstring · query · optional

Explicit IPv4 or IPv6 network location. Private, unknown or ambiguous locations remain unresolved. Mutually exclusive with every primary selector and coordinates.

Length: 0 to 45 characters

citystring · query · optional

Exact city name or stable city ID. Optional country/state narrows matches. Multiple places return choices; no population-ranked selection.

Length: 0 to 200 characters

countrystring · query · optional

ISO alpha-2 country selector, or context for city/address. A country with multiple timezones returns choices.

Pattern: ^[A-Za-z]{2}$

statestring · query · optional

Subdivision code for city/address, with country required. Bare code or country-prefixed code.

Pattern: ^(?:[A-Za-z]{2}-)?[A-Za-z0-9]{1,3}$

iatastring · query · optional

Three-letter airport code. Multiple records remain choices. Mutually exclusive with other primary inputs.

Pattern: ^[A-Za-z]{3}$

icaostring · query · optional

Four-letter ICAO airport code, matched to recorded airport coordinates.

Pattern: ^[A-Za-z]{4}$

unlocodestring · query · optional

UN/LOCODE for a covered port with recorded coordinates. Two country letters plus three location characters; optional separating space.

Pattern: ^[A-Za-z]{2} ?[A-Za-z2-9]{3}$

addressstring · query · optional

Street address with country=US. Exact recorded point matches only; missing or ambiguous points remain unresolved. Include number and postal code. This lookup does not verify delivery or occupancy.

Length: 0 to 200 characters

atstring · query · optional

ISO date and time with up to three fractional-second digits; defaults to now. Unix numbers are not accepted as input. An explicit Z or UTC offset identifies an instant. With to= or targets=, no offset means source-zone wall time; without either, no offset means UTC. By default, repeated wall times select the earlier occurrence and skipped times advance by the offset gap. Use disambiguation to choose another policy. Invalid calendar dates return 400.

Length: 0 to 40 characters

tostring · query · optional

Destination IANA timezone. Appends to with local at, unix, timezone, abbreviation, offset, and dst for the same instant. deep=true adds name, offset_minutes, and offset_seconds at to.name, to.offset_minutes and to.offset_seconds.

Length: 0 to 64 characters

disambiguationstring · query · optional

For offsetless at with to or targets: compatible selects the earlier repeated time and advances skipped times by the clock gap; earlier or later chooses the earlier or later instant; reject returns HTTP 400 ambiguous_time for a repeat or nonexistent_time for a gap. Branch on code, then ask for a choice before retrying. Valid values do not alter an explicit-offset instant, now, or the UTC interpretation without a destination. Invalid policies return 400 invalid_request.

Default: compatible

Values: compatible, earlier, later, reject

targetsstring · query · optional

Comma-separated list of 1–10 IANA destination identifiers, instead of to. Appends an ordered targets array with one compact clock per requested zone. Duplicates stay in place, all unix values match, and any unknown zone rejects the whole request. One pooled request for the entire conversion. deep=true adds numeric offsets and a name to each target.

Length: 1 to 649 characters

langstring · query · optional

Display language as one BCP 47 tag, such as fr or zh-Hant. Changes supported display labels only; IDs, codes, native names, facts, parsing and deep access stay unchanged. Omit for the original response. Unsupported regions use the supported language base; unsupported languages or scripts use English. Missing labels retain their source value. Accept-Language is not read automatically. Available on the current API contract; frozen 1.0.0 is unchanged.

Length: 2 to 64 characters

Example

Request

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.time(undefined, { at: "2026-08-29T19:00:00Z" });
console.log(result);
Example responsePaid plan
{
  "timezone": "UTC",
  "abbreviation": "UTC",
  "offset": "+00:00",
  "dst": false,
  "at": "2026-08-29T19:00:00+00:00",
  "unix": 1788030000,
  "name": "GMT+00:00",
  "offset_minutes": 0,
  "offset_seconds": 0,
  "next_dst": null
}

By timezoneCopy link

GET /time/{timezone}API Explorer ↗

Local time, UTC offset and DST

Parameters

timezonestring · path · required

IANA timezone identifier. Slashes may be literal or URL-encoded

Length: 0 to 64 characters

atstring · query · optional

ISO date and time with up to three fractional-second digits; defaults to now. Unix numbers are not accepted as input. An explicit Z or UTC offset identifies an instant. With to= or targets=, no offset means source-zone wall time; without either, no offset means UTC. By default, repeated wall times select the earlier occurrence and skipped times advance by the offset gap. Use disambiguation to choose another policy. Invalid calendar dates return 400.

Length: 0 to 40 characters

tostring · query · optional

Destination IANA timezone. Appends to with local at, unix, timezone, abbreviation, offset, and dst for the same instant. deep=true adds name, offset_minutes, and offset_seconds at to.name, to.offset_minutes and to.offset_seconds.

Length: 0 to 64 characters

disambiguationstring · query · optional

For offsetless at with to or targets: compatible selects the earlier repeated time and advances skipped times by the clock gap; earlier or later chooses the earlier or later instant; reject returns HTTP 400 ambiguous_time for a repeat or nonexistent_time for a gap. Branch on code, then ask for a choice before retrying. Valid values do not alter an explicit-offset instant, now, or the UTC interpretation without a destination. Invalid policies return 400 invalid_request.

Default: compatible

Values: compatible, earlier, later, reject

targetsstring · query · optional

Comma-separated list of 1–10 IANA destination identifiers, instead of to. Appends an ordered targets array with one compact clock per requested zone. Duplicates stay in place, all unix values match, and any unknown zone rejects the whole request. One pooled request for the entire conversion. deep=true adds numeric offsets and a name to each target.

Length: 1 to 649 characters

langstring · query · optional

Display language as one BCP 47 tag, such as fr or zh-Hant. Changes supported display labels only; IDs, codes, native names, facts, parsing and deep access stay unchanged. Omit for the original response. Unsupported regions use the supported language base; unsupported languages or scripts use English. Missing labels retain their source value. Accept-Language is not read automatically. Available on the current API contract; frozen 1.0.0 is unchanged.

Length: 2 to 64 characters

Use an IANA id such as America/New_York, Asia/Tokyo, or UTC. A slash can remain in the path or be URL-encoded as %2F.

Choose IANA timezone in the examples above to try this request.

Find a timezoneCopy link

Search /time/zones?q=new york for a supported IANA identifier, or omit q for the full list. Search ignores case and treats spaces and underscores alike. Results are sorted; no match returns an empty array. The response includes the serving IANA rules edition, so autocomplete and conversion can use the same identifiers. Use city= on the bare Time route for city names.

GET /time/zonesAPI Explorer ↗

Search and filter supported IANA timezones

Parameters

qstring · query · optional

Search identifier tokens, ignoring case and treating spaces and underscores alike.

Length: 0 to 64 characters

countrystring · query · optional

Filter by associated ISO alpha-2 country. IANA shared-rule associations since 1970 can connect one zone to several countries.

Pattern: ^[A-Za-z]{2}$

areastring · query · optional

IANA area prefix, such as America, Europe or Pacific.

Values: Africa, America, Antarctica, Arctic, Asia, Atlantic, Australia, Europe, Indian, Pacific, Etc

offsetstring · query · optional

Actual offset at the selected instant, ±HH:MM[:SS]. URL-encode a leading plus as %2B.

abbreviationstring · query · optional

Exact case-insensitive abbreviation at the selected instant. Returns all matching identifiers; CST never silently chooses one zone.

Length: 0 to 16 characters

dstboolean · query · optional

Filter the DST rule flag at the selected instant. Both true and false are meaningful.

observes_dstboolean · query · optional

Filter whether the DST rule flag occurs in the selected UTC calendar year.

sortstring · query · optional

Identifier order, or numeric UTC offset then identifier.

Default: timezone

Values: timezone, offset

atstring · query · optional

ISO date/timestamp used for all time-dependent filters. Offsetless input means UTC; defaults to one captured now.

Length: 0 to 40 characters

detailsboolean · query · optional

Return detailed zones rows in place of the compact timezones list.

Example

Request

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.time.zones("new york");
console.log(result);
Example response
{
  "timezones": [
    "America/New_York"
  ]
}

Build a timezone pickerCopy link

Filter /time/zones by country, IANA area, signed offset,dst at the selected instant, or observes_dst during its UTC calendar year. Add sort=offset for numerical offset order and details=true for detailed zones rows. The existing timezones array always contains strings. at fixes the instant; otherwise all rows share one captured now. Country associations follow IANA’s shared rules since 1970; a row can list more than one country. Encode a positive offset’s plus sign as %2B. Both dst=false and observes_dst=false are valid filters.

Choose Timezone picker in the examples above to try this request.

Resolve an abbreviation explicitlyCopy link

Use /time/zones?abbreviation=CST to get every matching identifier at the selected instant. Narrow with country, area or offset, then pass the chosen IANA identifier to Time. An abbreviation is a search criterion; it never silently selects a country or timezone. Aliases can appear as separate supported identifiers.

Choose Abbreviation matches in the examples above to try this request.

Start with a placeCopy link

Use exactly one explicit input on /time: city, country, ip,iata, icao, unlocode or address. A city name can include country and state context; a stable City ID also works. Address input requires country=US and matches recorded address points. IP input uses network-location evidence. UN/LOCODE lookup covers recorded ports with coordinates. Place lookup uses the same at, to and targets options and one pooled request.

Example

Request

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.time(undefined, { at: "2026-09-24T12:00:00Z", iata: "JFK" });
console.log(result);
Example responsePaid plan
{
  "timezone": "America/New_York",
  "at": "2026-09-24T08:00:00-04:00",
  "unix": 1790251200,
  "offset": "-04:00",
  "abbreviation": "EDT",
  "dst": true,
  "location": {
    "name": "John F. Kennedy International Airport",
    "state": "NY",
    "country": "US",
    "latitude": 40.639447,
    "longitude": -73.779317
  },
  "name": "Eastern Time",
  "offset_minutes": -240,
  "offset_seconds": -14400,
  "next_dst": {
    "at": "2026-11-01T06:00:00.000Z",
    "dst": false,
    "offset": "-05:00",
    "abbreviation": "EST"
  },
  "standard_offset": "-05:00",
  "standard_offset_seconds": -18000,
  "dst_offset_seconds": 3600,
  "season": {
    "start": {
      "at": "2026-03-08T07:00:00.000Z",
      "before": {
        "at": "2026-03-08T02:00:00-05:00",
        "offset": "-05:00",
        "offset_seconds": -18000,
        "abbreviation": "EST",
        "dst": false
      },
      "after": {
        "at": "2026-03-08T03:00:00-04:00",
        "offset": "-04:00",
        "offset_seconds": -14400,
        "abbreviation": "EDT",
        "dst": true
      },
      "change_seconds": 3600
    },
    "end": {
      "at": "2026-11-01T06:00:00.000Z",
      "before": {
        "at": "2026-11-01T02:00:00-04:00",
        "offset": "-04:00",
        "offset_seconds": -14400,
        "abbreviation": "EDT",
        "dst": true
      },
      "after": {
        "at": "2026-11-01T01:00:00-05:00",
        "offset": "-05:00",
        "offset_seconds": -18000,
        "abbreviation": "EST",
        "dst": false
      },
      "change_seconds": -3600
    }
  }
}

A resolved answer includes the clock and a compact matched location when available. Multiple places or a country with multiple zones return ambiguous, with up to 50 candidates. Choose a candidate’s timezone explicitly, or narrow the city/address context.truncated=true means more matches may exist. Missing locations return not_found. Ambiguous and missing locations keep clock fields and requested destinations null; they never fall back to UTC.

Location coverage

The recorded airport coverage resolves 9,053 IATA codes and 10,496 ICAO codes to one civil timezone. The recorded port subset resolves 3,244 UN/LOCODEs to one zone; it is not the complete UN/LOCODE directory.

Address lookup covers matched US points. City and IP results depend on the available location records. Airport and port coordinates without a civil-zone match stay unresolved.

From coordinatesCopy link

GET /time?lat={lat}&lon={lon}API Explorer ↗

Local time and the IANA timezone at a coordinate. Supply both lat and lon

Parameters

latnumber · query · optional

Latitude. Requires lon; omit both for UTC

Range: -90 to 90

lonnumber · query · optional

Longitude. Requires lat; omit both for UTC

Range: -180 to 180

ipstring · query · optional

Explicit IPv4 or IPv6 network location. Private, unknown or ambiguous locations remain unresolved. Mutually exclusive with every primary selector and coordinates.

Length: 0 to 45 characters

citystring · query · optional

Exact city name or stable city ID. Optional country/state narrows matches. Multiple places return choices; no population-ranked selection.

Length: 0 to 200 characters

countrystring · query · optional

ISO alpha-2 country selector, or context for city/address. A country with multiple timezones returns choices.

Pattern: ^[A-Za-z]{2}$

statestring · query · optional

Subdivision code for city/address, with country required. Bare code or country-prefixed code.

Pattern: ^(?:[A-Za-z]{2}-)?[A-Za-z0-9]{1,3}$

iatastring · query · optional

Three-letter airport code. Multiple records remain choices. Mutually exclusive with other primary inputs.

Pattern: ^[A-Za-z]{3}$

icaostring · query · optional

Four-letter ICAO airport code, matched to recorded airport coordinates.

Pattern: ^[A-Za-z]{4}$

unlocodestring · query · optional

UN/LOCODE for a covered port with recorded coordinates. Two country letters plus three location characters; optional separating space.

Pattern: ^[A-Za-z]{2} ?[A-Za-z2-9]{3}$

addressstring · query · optional

Street address with country=US. Exact recorded point matches only; missing or ambiguous points remain unresolved. Include number and postal code. This lookup does not verify delivery or occupancy.

Length: 0 to 200 characters

atstring · query · optional

ISO date and time with up to three fractional-second digits; defaults to now. Unix numbers are not accepted as input. An explicit Z or UTC offset identifies an instant. With to= or targets=, no offset means source-zone wall time; without either, no offset means UTC. By default, repeated wall times select the earlier occurrence and skipped times advance by the offset gap. Use disambiguation to choose another policy. Invalid calendar dates return 400.

Length: 0 to 40 characters

tostring · query · optional

Destination IANA timezone. Appends to with local at, unix, timezone, abbreviation, offset, and dst for the same instant. deep=true adds name, offset_minutes, and offset_seconds at to.name, to.offset_minutes and to.offset_seconds.

Length: 0 to 64 characters

disambiguationstring · query · optional

For offsetless at with to or targets: compatible selects the earlier repeated time and advances skipped times by the clock gap; earlier or later chooses the earlier or later instant; reject returns HTTP 400 ambiguous_time for a repeat or nonexistent_time for a gap. Branch on code, then ask for a choice before retrying. Valid values do not alter an explicit-offset instant, now, or the UTC interpretation without a destination. Invalid policies return 400 invalid_request.

Default: compatible

Values: compatible, earlier, later, reject

targetsstring · query · optional

Comma-separated list of 1–10 IANA destination identifiers, instead of to. Appends an ordered targets array with one compact clock per requested zone. Duplicates stay in place, all unix values match, and any unknown zone rejects the whole request. One pooled request for the entire conversion. deep=true adds numeric offsets and a name to each target.

Length: 1 to 649 characters

langstring · query · optional

Display language as one BCP 47 tag, such as fr or zh-Hant. Changes supported display labels only; IDs, codes, native names, facts, parsing and deep access stay unchanged. Omit for the original response. Unsupported regions use the supported language base; unsupported languages or scripts use English. Missing labels retain their source value. Accept-Language is not read automatically. Available on the current API contract; frozen 1.0.0 is unchanged.

Length: 2 to 64 characters

Land returns its civil timezone. Open ocean returns a nautical Etc/GMT zone. Those ids use the POSIX sign: Etc/GMT+3 means UTC-03:00. The response offset and local time use the ordinary sign. If the timezone cannot resolve, its fields are null. Coordinates also accept at and to.

Choose Coordinates in the examples above to try this request.

ConvertCopy link

Add to with a destination timezone. The to object gives its local time and offset. Both unix values are identical: this is one instant in two places. Omit at to convert now.

GET /time/{timezone}?to={timezone}&at={time}API Explorer ↗

Convert a local time or an exact instant to another timezone

Parameters

timezonestring · path · required

IANA timezone identifier. Slashes may be literal or URL-encoded

Length: 0 to 64 characters

atstring · query · optional

ISO date and time with up to three fractional-second digits; defaults to now. Unix numbers are not accepted as input. An explicit Z or UTC offset identifies an instant. With to= or targets=, no offset means source-zone wall time; without either, no offset means UTC. By default, repeated wall times select the earlier occurrence and skipped times advance by the offset gap. Use disambiguation to choose another policy. Invalid calendar dates return 400.

Length: 0 to 40 characters

tostring · query · optional

Destination IANA timezone. Appends to with local at, unix, timezone, abbreviation, offset, and dst for the same instant. deep=true adds name, offset_minutes, and offset_seconds at to.name, to.offset_minutes and to.offset_seconds.

Length: 0 to 64 characters

disambiguationstring · query · optional

For offsetless at with to or targets: compatible selects the earlier repeated time and advances skipped times by the clock gap; earlier or later chooses the earlier or later instant; reject returns HTTP 400 ambiguous_time for a repeat or nonexistent_time for a gap. Branch on code, then ask for a choice before retrying. Valid values do not alter an explicit-offset instant, now, or the UTC interpretation without a destination. Invalid policies return 400 invalid_request.

Default: compatible

Values: compatible, earlier, later, reject

targetsstring · query · optional

Comma-separated list of 1–10 IANA destination identifiers, instead of to. Appends an ordered targets array with one compact clock per requested zone. Duplicates stay in place, all unix values match, and any unknown zone rejects the whole request. One pooled request for the entire conversion. deep=true adds numeric offsets and a name to each target.

Length: 1 to 649 characters

langstring · query · optional

Display language as one BCP 47 tag, such as fr or zh-Hant. Changes supported display labels only; IDs, codes, native names, facts, parsing and deep access stay unchanged. Omit for the original response. Unsupported regions use the supported language base; unsupported languages or scripts use English. Missing labels retain their source value. Accept-Language is not read automatically. Available on the current API contract; frozen 1.0.0 is unchanged.

Length: 2 to 64 characters

Example

Request

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.time("America/New_York", { at: "2026-08-29T15:00", to: "Asia/Tokyo", disambiguation: "reject" });
console.log(result);
Example responsePaid plan
{
  "timezone": "America/New_York",
  "abbreviation": "EDT",
  "offset": "-04:00",
  "dst": true,
  "at": "2026-08-29T15:00:00-04:00",
  "unix": 1788030000,
  "to": {
    "timezone": "Asia/Tokyo",
    "abbreviation": "JST",
    "offset": "+09:00",
    "dst": false,
    "at": "2026-08-30T04:00:00+09:00",
    "unix": 1788030000,
    "name": "Japan Standard Time",
    "offset_minutes": 540,
    "offset_seconds": 32400
  },
  "name": "Eastern Time",
  "offset_minutes": -240,
  "offset_seconds": -14400,
  "next_dst": {
    "at": "2026-11-01T06:00:00.000Z",
    "dst": false,
    "offset": "-05:00",
    "abbreviation": "EST"
  }
}

Several destinations, one instantCopy link

Use targets=Europe/London,Asia/Tokyo instead of to to convert to up to ten zones in one pooled request. SDKs accept a list. The targets array preserves your order and duplicates; every entry has the same unix value as the source. An invalid zone rejects the whole request. Both destination options also work with coordinates. An unresolved source coordinate returns targets: null.

Choose Several destinations in the examples above to try this request.

With to or targets, a timestamp without a UTC offset reads as wall time in the source timezone. A repeated time when clocks move back selects the earlier occurrence. A skipped time when clocks move forward advances by the size of the gap. Include an explicit offset to choose an exact instant. Without either destination option, an offsetless timestamp reads as UTC. Invalid dates return 400 instead of rolling into another month.

Choose what happens at a clock changeCopy link

For a local time supplied with to or targets, add disambiguation=reject to return HTTP 400 ambiguous_time when that time happens twice, or nonexistent_time when it was skipped. Ask the user to choose an occurrence or a different time before scheduling it. An explicit Z or UTC offset always identifies one instant and needs no disambiguation.

Branch on the error code, never its message. After the user chooses, resend the same input with disambiguation=earlier or later. An explicit offset also identifies the occurrence. The interactive converter asks first; the API keeps compatible as its default for existing integrations.

disambiguationRepeated timeSkipped time
compatible (default)Earlier occurrenceMove forward by the gap
earlierEarlier occurrenceMove back by the gap
laterLater occurrenceMove forward by the gap
reject400 error400 error

New York repeats 01:30 on November 1, 2026. This request chooses the second occurrence, at 06:30 UTC. The default chooses 05:30 UTC. Change disambiguation to reject to see the error. On March 8, 2026, 02:30 in New York does not exist: reject returns an error, earlier returns 01:30, and later returns 03:30.

Example

Request

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.time("America/New_York", { at: "2026-11-01T01:30", to: "UTC", disambiguation: "later" });
console.log(result);
Example responsePaid plan
{
  "timezone": "America/New_York",
  "at": "2026-11-01T01:30:00-05:00",
  "unix": 1793514600,
  "offset": "-05:00",
  "abbreviation": "EST",
  "dst": false,
  "to": {
    "timezone": "UTC",
    "at": "2026-11-01T06:30:00+00:00",
    "unix": 1793514600,
    "offset": "+00:00",
    "abbreviation": "UTC",
    "dst": false,
    "name": "GMT+00:00",
    "offset_minutes": 0,
    "offset_seconds": 0
  },
  "name": "Eastern Time",
  "offset_minutes": -300,
  "offset_seconds": -18000,
  "next_dst": {
    "at": "2027-03-14T07:00:00.000Z",
    "dst": true,
    "offset": "-04:00",
    "abbreviation": "EDT"
  },
  "resolution": {
    "kind": "overlap",
    "policy": "later",
    "adjustment_seconds": 0,
    "alternatives": [
      {
        "at": "2026-11-01T01:30:00-04:00",
        "unix": 1793511000,
        "offset": "-04:00"
      },
      {
        "at": "2026-11-01T01:30:00-05:00",
        "unix": 1793514600,
        "offset": "-05:00"
      }
    ]
  },
  "standard_offset": "-05:00",
  "standard_offset_seconds": -18000,
  "dst_offset_seconds": 0,
  "season": {
    "start": {
      "at": "2027-03-14T07:00:00.000Z",
      "before": {
        "at": "2027-03-14T02:00:00-05:00",
        "offset": "-05:00",
        "offset_seconds": -18000,
        "abbreviation": "EST",
        "dst": false
      },
      "after": {
        "at": "2027-03-14T03:00:00-04:00",
        "offset": "-04:00",
        "offset_seconds": -14400,
        "abbreviation": "EDT",
        "dst": true
      },
      "change_seconds": 3600
    },
    "end": {
      "at": "2027-11-07T06:00:00.000Z",
      "before": {
        "at": "2027-11-07T02:00:00-04:00",
        "offset": "-04:00",
        "offset_seconds": -14400,
        "abbreviation": "EDT",
        "dst": true
      },
      "after": {
        "at": "2027-11-07T01:00:00-05:00",
        "offset": "-05:00",
        "offset_seconds": -18000,
        "abbreviation": "EST",
        "dst": false
      },
      "change_seconds": -3600
    }
  }
}

See how the local time was resolvedCopy link

Paid plans automatically include resolution for an offsetless conversion. Its kind is unique, overlap, or gap; policy records the selected policy and adjustment_seconds records the signed change to the requested wall clock. For a gap or overlap, alternatives contains the earlier and later answers, in instant order, with offset-bearing at, unix seconds and offset. A unique time has no alternatives.

Choose Inspect clock resolution in the examples above to try this request.

A gap has no matching instant: its alternatives move the wall clock back or forward by the gap. Resolution is null for now, explicit-offset inputs, lookups without a destination, and unresolved source coordinates. Keep the exact returned at when milliseconds matter; unix contains whole seconds.

The option also works with coordinates. Without a destination option, offsetless at still means UTC. Valid disambiguation values have no effect on that interpretation, explicit-offset instants, or now. An unknown option value returns 400.

Plan for the whole clock changeCopy link

Paid profiles separate standard_offset_seconds from dst_offset_seconds; their sum is the actual offset.season describes the current interval carrying the DST rule flag, or the next one starting within 400 days. Its start and end include the UTC boundary, the wall clock before and after the change, and signed change_seconds. The before/after values describe one boundary under each offset. An unavailable boundary stays null; a zone with no known interval has a null season. Negative seasonal adjustments and double daylight saving keep their actual values. Political changes without the DST flag remain separate from seasons.

Request

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.time("America/New_York", { at: "2026-06-01T12:00:00Z" });
console.log(result);
Example responsePaid plan
{
  "timezone": "America/New_York",
  "at": "2026-06-01T08:00:00-04:00",
  "unix": 1780315200,
  "offset": "-04:00",
  "abbreviation": "EDT",
  "dst": true,
  "name": "Eastern Time",
  "offset_minutes": -240,
  "offset_seconds": -14400,
  "next_dst": {
    "at": "2026-11-01T06:00:00.000Z",
    "dst": false,
    "offset": "-05:00",
    "abbreviation": "EST"
  },
  "standard_offset": "-05:00",
  "standard_offset_seconds": -18000,
  "dst_offset_seconds": 3600,
  "season": {
    "start": {
      "at": "2026-03-08T07:00:00.000Z",
      "before": {
        "at": "2026-03-08T02:00:00-05:00",
        "offset": "-05:00",
        "offset_seconds": -18000,
        "abbreviation": "EST",
        "dst": false
      },
      "after": {
        "at": "2026-03-08T03:00:00-04:00",
        "offset": "-04:00",
        "offset_seconds": -14400,
        "abbreviation": "EDT",
        "dst": true
      },
      "change_seconds": 3600
    },
    "end": {
      "at": "2026-11-01T06:00:00.000Z",
      "before": {
        "at": "2026-11-01T02:00:00-04:00",
        "offset": "-04:00",
        "offset_seconds": -14400,
        "abbreviation": "EDT",
        "dst": true
      },
      "after": {
        "at": "2026-11-01T01:00:00-05:00",
        "offset": "-05:00",
        "offset_seconds": -18000,
        "abbreviation": "EST",
        "dst": false
      },
      "change_seconds": -3600
    }
  }
}

Timestamp precision and timezone rulesCopy link

at accepts ISO dates and times with up to three fractional-second digits, not Unix numbers. unix is output in whole seconds, rounded down. Nonzero milliseconds stay in at. The Time help documents the maintained timezone rules. Future clock changes follow that edition; governments can revise them. A fixed instant can have a different local rendering after a rules update.

Coordinates use the bundled geographic timezone boundaries. A past at changes the clock rules, not the geographic boundaries used to select the zone. The rules edition identifies offsets and transitions; friendly display names can change independently of clock rules.

The dst flag follows timezone rules, including negative daylight-saving adjustments. Use offset and at for the actual local clock. Historical zones can have offsets with seconds. offset_seconds is exact;offset_minutes keeps whole minutes for existing clients. When at has an offset such as +00:09:21, use unixin parsers that only accept whole-minute offsets. In JavaScript, that is new Date(unix * 1000).

Response fields

latitudeLink to latitudenumber or null
Input latitude for coordinate requests. A matched place keeps its latitude in location
longitudeLink to longitudenumber or null
Input longitude for coordinate requests. A matched place keeps its longitude in location
timezoneLink to timezonestring or null
IANA timezone id. Nautical Etc/GMT zone over open ocean
abbreviationLink to abbreviationstring or null
Timezone-rule abbreviation, such as EDT or JST; some zones use numeric labels. Not a unique timezone identifier
offsetLink to offsetstring or null
UTC offset as ±HH:MM. Historical subminute offsets include :SS
dstLink to dstboolean or null
Daylight-saving indicator from the timezone rules at the reference time, including negative seasonal adjustments
atLink to atstring or null
Local date and time as ISO 8601 with the resolved UTC offset. Always present; now unless ?at= selects a moment. Null for an ambiguous or unresolved source location
toLink to toobject or null
With ?to= only: the other zone evaluated at the same instant
unixLink to unixinteger or null
Unix timestamp in seconds for the resolved instant. Always present; fractional seconds round down. Null for an ambiguous or unresolved source location
to.atLink to to.atstring
The converted local date and time, ISO with its UTC offset
to.unixLink to to.unixinteger
The same Unix timestamp as unix: both zones describe one instant
targetsLink to targetsarray or null
With targets= instead of to=: ordered array of 1–10 destination clocks, each with timezone, at, unix, offset, abbreviation and dst. Duplicates stay in place; every unix matches the source. Null if the source location is ambiguous or unresolved
locationLink to locationobject
Matched place with its name, state, country and coordinates. Ambiguous or missing places retain input, status, candidates and truncated with null clock fields. Choose a candidate timezone explicitly

Existing /timezone integrations continue to work. Use /time for new integrations.

Included dataCopy link

Friendly zone name, numeric offsets, clock changes, seasonal boundaries and local-time resolution. Included automatically on paid plans in API 2.1. Existing accounts retain their current profile access.

Paid plan fields

nameLink to namestring or null
Friendly / generic name (e.g. Eastern Time)
offset_minutesLink to offset_minutesinteger or null
UTC offset in whole minutes, truncated toward zero
offset_secondsLink to offset_secondsinteger or null
Exact UTC offset in seconds, including historical subminute offsets
next_dstLink to next_dstobject or null
Next offset transition after the reference time, or null
resolutionLink to resolutionobject
For offsetless conversion: kind (unique, overlap or gap), applied policy, signed adjustment_seconds, and earlier/later alternatives with at, unix and offset. Unique times have an empty alternatives array. Omitted when no wall-time resolution was performed
standard_offsetLink to standard_offsetstring or null
Standard UTC offset at the requested instant, as ±HH:MM[:SS]. Null when unresolved
standard_offset_secondsLink to standard_offset_secondsinteger or null
Exact standard UTC offset in seconds, from the same timezone rules
dst_offset_secondsLink to dst_offset_secondsinteger or null
Actual offset minus standard offset, in seconds. Preserves zero, negative saving and double daylight saving
seasonLink to seasonobject or null
Current DST-flag interval, or next interval starting within 400 days. start and end each contain the UTC boundary, before/after local clocks and change_seconds; each boundary can independently be null. Null when no interval is known

Display languageCopy link

Pass lang with a language tag such as fr, pt-BR, or zh-Hant. Requested name for the returned timezone and any conversion target, using the timezone rules at that same instant. Timezone IDs, times, offsets and DST facts stay unchanged.

Omitting lang preserves the original response. Codes, IDs, numeric facts and native-name fields stay unchanged. Missing translations keep their existing source value; unknown values stay null. A preserved name_local may equal the translated name.

Send a chosen browser preference explicitly, for example { lang: navigator.language } in your JavaScript SDK options. The API does not read Accept-Language automatically. Unsupported regions fall back to their supported base language; unsupported languages or scripts use English. Empty, invalid or repeated tags return 400.

Content-Language identifies languages used in translated display fields and known English fallbacks. Display language is available on API 2.1.0; requests selecting frozen 1.0.0 retain their original contract. See API versions.

33 display language choices

Language tagLanguage
enEnglish
arالعربية
cacatalà
hrhrvatski
csčeština
dadansk
nlNederlands
fisuomi
frfrançais
deDeutsch
elΕλληνικά
heעברית
hiहिन्दी
humagyar
idIndonesia
ititaliano
ja日本語
ko한국어
msMelayu
nbnorsk bokmål
plpolski
ptportuguês
roromână
ruрусский
zh-Hans简体中文
skslovenčina
esespañol
svsvenska
thไทย
zh-Hant繁體中文
trTürkçe
ukукраїнська
viTiếng Việt