Skip to main content

Timezone Selector

The chart timezone controls how times are displayed. Users change it from the timezone selector in the top toolbar; hosts set it at construction or at runtime, and can add friendly aliases to the selector.

For the wider model — exchange, chart-display, browser, and session timezones and how they compose — see Timezones.

The selector

TradeScript timezone modal open over the dark BTCUSDT chart listing UTC offsets with market city labels such as Honolulu, Los Angeles, Denver, Chicago, and New York, with radio selection and a confirm button

Timezone menu open · BTCUSDT · 15m · dark theme — captured from the live playground.

Three controls make up the selector:

  1. Timezone list — each row pairs a UTC offset with a market city label (for example UTC-5:00 - New York). Entries include common IANA market zones and fixed-offset entries; hosts extend or relabel them with LocalizationSettings.timezoneAliases.
  2. Radio selection and Confirm — the change applies to displayed scale and legend labels when confirmed.
  3. The clock button in the top toolbar opens this modal — see Toolbars.

Changing the chart timezone changes displayed scale and legend labels. It does not change the UTC timestamps supplied by the feed or the exchange session definition.

Before and after

For a bar at 2026-07-31T13:30:00Z, a New York chart and a Colombo chart display different clock labels while both refer to the same bar:

LayerNew York chartColombo chartOwner
Bar timestamp2026-07-31T13:30:00Z2026-07-31T13:30:00ZDatafeed
Scale label9:30 AM (America/New_York, UTC-4 in July)7:00 PM (Asia/Colombo, UTC+5:30)Chart timezone
Exchange sessionExchange schedule timezoneSame exchange scheduleSymbolInfo / session calendar
Number/date languageActive localeActive localeLocalization

Keep the four layers separate when debugging:

  • Scale labels — the only thing the chart timezone changes.
  • Bar timestamps — always UTC epoch values from the feed; never rewritten by display settings.
  • Exchange sessions — defined in the exchange's own schedule timezone via SymbolInfo.timezone and session calendars; shading and filtering follow the schedule, not the display zone.
  • Browser locale — controls number and date language through Localization, not through the timezone selector.

Configuration mapping

NeedTradeScript surface
Initial chart timezoneChartWidgetOptions.timezone
Symbol timezoneSymbolInfo.timezone
Runtime timezonechart.customization().setTimezone(timezone)
Locale plus timezonechart.customization().setLocalization(...)
Custom timezone aliasesLocalizationSettings.timezoneAliases
UI selectorTimezone modal in the chart toolbar

The built-in selector includes common IANA market zones and fixed-offset entries. Runtime APIs also accept arbitrary IANA timezone IDs when the host wants a zone that is not shown in the picker.

sdk.chart.mount({
mount: '#chart',
symbol: 'AAPL',
interval: '1D',
timezone: 'America/New_York',
datafeed,
});

chart.customization().setTimezone('Asia/Colombo');

chart.customization().setLocalization({
timezoneAliases: [
{ id: 'nyse-local', label: 'NYSE Local', timezone: 'America/New_York' },
],
});

Alias Contract

Aliases expose friendly names or fixed-offset market labels while still resolving to a concrete timezone.

FieldMeaning
TimezoneAlias.idStable alias ID
TimezoneAlias.timezoneConcrete IANA or fixed-offset timezone
TimezoneAlias.labelUser-facing selector label
TimezoneAlias.offsetMinutesUTC offset in minutes associated with the alias
TimezoneAlias.metadataHost-defined passthrough data; the SDK does not interpret it

GMT-style aliases such as Etc/GMT+3 pass through as concrete timezone IDs. Hosts must choose aliases that match the intended daylight-saving behavior.