While each Modus SDK offers similar capabilities, the APIs and usage may vary between languages.

Modus Local Time APIs documentation is available on the following pages:

The Modus Local Time APIs allow you to access the user’s local time and time zone from your functions.

Import

To begin, import the localtime namespace from the SDK:

import { localtime } from "@hypermode/modus-sdk-as"

Local Time APIs

The APIs in the localtime namespace are below.

All time zones use the IANA time zone database format. For example, "America/New_York". You can find a list of valid time zones here.

For APIs that work with the user’s local time, the time zone is determined in the following order of precedence:

  • If the X-Time-Zone header is present in the request, the time zone is set to the value of the header.
  • If the TZ environment variable is set on the host, the time zone is set to the value of the variable.
  • Otherwise, the time zone is set to the host’s local time zone.

When working locally with modus dev, Modus uses the host’s local time zone by default. You can override this by setting the TZ environment variable in your .env.local file.

In a browser-based web app, you can get the user’s time zone with the following JavaScript code:

const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone

Assign that value to a "X-Time-Zone" request header when calling Modus, to use it for all local time calculations.

If you just need the current UTC time, you can use AssemblyScript’s built-in support:

const now = new Date(Date.now())

// if you need a string
const utcTime = now.toISOString()

We’re constantly introducing new APIs through ongoing development with early users. Please open an issue if you have ideas on what would make Modus even more powerful for your next app!

Functions

getTimeZone

Returns the user’s time zone in IANA format.

function getTimeZone(): string

isValidTimeZone

Determines whether the specified time zone is a valid IANA time zone and recognized by the system as such.

function isValidTimeZone(tz: string): bool
tz
string
required

An IANA time zone identifier, such as "America/New_York".

now

Returns the current local time in the user’s time zone, as a string in ISO 8601 extended format, including the applicable time zone offset.

For example, "2025-12-31T12:34:56.789-04:00".

function now(): string

nowInZone

Returns the current local time in a specified time zone, as a string in ISO 8601 extended format, including the applicable time zone offset.

For example, "2025-12-31T12:34:56.789-04:00".

function nowInZone(tz: string): string
tz
string
required

An IANA time zone identifier, such as "America/New_York".