← Docs

Time API

Local time, timezone lookup, and conversion.

Get the current time in UTC, in an IANA timezone, or at a coordinate. 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 core. Deep adds numeric offsets, a friendly zone name and the next clock change, included on every plan.

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.

UTC

GET
api.parseapi.com/time
The current time in UTC. Optional ?at= selects a specific instant
Explore
Parameters 5
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

atstring · query · optional

ISO date and time; defaults to now. An explicit Z or UTC offset identifies an instant. With to=, no offset means source-zone wall time; without to=, no offset means UTC. Repeated wall times select the earlier occurrence; skipped times advance by the offset gap. Invalid calendar dates return 400.

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 inside to.deep.

deepboolean · query · optional

Friendly zone name, numeric offset representations and the next offset transition. Included on every plan, with no additional charge.

Values: true

Run uses the free demo. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

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);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "timezone": "UTC",
  "abbreviation": "UTC",
  "offset": "+00:00",
  "dst": false,
  "at": "2026-08-29T19:00:00+00:00",
  "unix": 1788030000
}

By timezone

GET
api.parseapi.com/time/{timezone}
Local time, UTC offset and DST
Explore
Parameters 4
timezonestring · path · required

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

atstring · query · optional

ISO date and time; defaults to now. An explicit Z or UTC offset identifies an instant. With to=, no offset means source-zone wall time; without to=, no offset means UTC. Repeated wall times select the earlier occurrence; skipped times advance by the offset gap. Invalid calendar dates return 400.

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 inside to.deep.

deepboolean · query · optional

Friendly zone name, numeric offset representations and the next offset transition. Included on every plan, with no additional charge.

Values: true

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.

Run uses the free demo. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

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

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.time("America/New_York", { at: "2026-08-29T19:00:00Z" });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "timezone": "America/New_York",
  "abbreviation": "EDT",
  "offset": "-04:00",
  "dst": true,
  "at": "2026-08-29T15:00:00-04:00",
  "unix": 1788030000
}

From coordinates

GET
api.parseapi.com/time?lat={lat}&lon={lon}
Local time and the IANA timezone at a coordinate. Supply both lat and lon
Explore
Parameters 5
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

atstring · query · optional

ISO date and time; defaults to now. An explicit Z or UTC offset identifies an instant. With to=, no offset means source-zone wall time; without to=, no offset means UTC. Repeated wall times select the earlier occurrence; skipped times advance by the offset gap. Invalid calendar dates return 400.

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 inside to.deep.

deepboolean · query · optional

Friendly zone name, numeric offset representations and the next offset transition. Included on every plan, with no additional charge.

Values: true

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.

Run uses the free demo. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

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

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.time.at(40.7128, -74.006, { at: "2026-08-29T19:00:00Z" });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "latitude": 40.7128,
  "longitude": -74.006,
  "timezone": "America/New_York",
  "abbreviation": "EDT",
  "offset": "-04:00",
  "dst": true,
  "at": "2026-08-29T15:00:00-04:00",
  "unix": 1788030000
}

Convert

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
api.parseapi.com/time/{timezone}?to={timezone}&at={time}
Convert a local time or an exact instant to another timezone
Explore
Parameters 4
timezonestring · path · required

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

atstring · query · optional

ISO date and time; defaults to now. An explicit Z or UTC offset identifies an instant. With to=, no offset means source-zone wall time; without to=, no offset means UTC. Repeated wall times select the earlier occurrence; skipped times advance by the offset gap. Invalid calendar dates return 400.

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 inside to.deep.

deepboolean · query · optional

Friendly zone name, numeric offset representations and the next offset transition. Included on every plan, with no additional charge.

Values: true

Run uses the free demo. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

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" });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "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
  }
}

With to, 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 to, an offsetless timestamp reads as UTC. Invalid dates return 400 instead of rolling into another month.

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. deep.offset_seconds is exact;deep.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

latitude
Input latitude (coords path only)
longitude
Input longitude (coords path only)
timezone
IANA timezone id. Nautical Etc/GMT zone over open ocean
abbreviation
Timezone-rule abbreviation, such as EDT or JST; some zones use numeric labels. Not a unique timezone identifier
offset
UTC offset as ±HH:MM. Historical subminute offsets include :SS
dst
Daylight-saving indicator from the timezone rules at the reference time, including negative seasonal adjustments
at
Local date and time as ISO 8601 with the resolved UTC offset. Always present; now unless ?at= selects a moment. Null for an unresolved coordinate
to
With ?to= only: the other zone evaluated at the same instant
unix
Unix timestamp in seconds for the resolved instant. Always present; fractional seconds round down. Null for an unresolved coordinate
to.at
The converted local date and time, ISO with its UTC offset
to.unix
The same Unix timestamp as unix: both zones describe one instant

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

Deep

?deep=true Friendly zone name, numeric offset representations and the next offset transition. Included on every plan, with no additional charge.

Run uses the free demo. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

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

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.time("America/New_York", { at: "2026-08-29T19:00:00Z", deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "timezone": "America/New_York",
  "abbreviation": "EDT",
  "offset": "-04:00",
  "dst": true,
  "at": "2026-08-29T15:00:00-04:00",
  "unix": 1788030000,
  "deep": {
    "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"
    }
  }
}

Deep fields

deep.name
Friendly / generic name (e.g. Eastern Time)
deep.offset_minutes
UTC offset in whole minutes, truncated toward zero
deep.offset_seconds
Exact UTC offset in seconds, including historical subminute offsets
deep.next_dst
Next offset transition after the reference time, or null

Build with Time

All tutorials →

Questions? Email