blob: 2266d38df2d6c0c8ff1e0920808f8ff3978822be [file] [log] [blame] [view]
<link rel="stylesheet" href="../style.css" />
[TOC]
# fuchsia.intl
<div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 7</span></div>
## **PROTOCOLS**
## PropertyProvider {#PropertyProvider}
*Defined in [fuchsia.intl/property_provider.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/property_provider.fidl;l=15)*
<p>Provides internationalization properties.</p>
<p>Components that need to change their behavior in response to the user's internationalization
profile may request an instance of this service from their namespace, if available. A component
may choose to pass along the service that it received from its parent to its own children, or to
override it and apply additional customizations.</p>
<p>See also <code>fuchsia.ui.views.View</code>.</p>
### GetProfile {#PropertyProvider.GetProfile}
<p>Gets the user's internationalization profile.</p>
#### Request {#PropertyProvider.GetProfile_Request}
&lt;EMPTY&gt;
#### Response {#PropertyProvider.GetProfile_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>profile</code></td>
<td>
<code><a class='link' href='#Profile'>Profile</a></code>
</td>
</tr>
</table>
### OnChange {#PropertyProvider.OnChange}
<p>Indicates that the properties may have changed and the client should query them again.</p>
#### Response {#PropertyProvider.OnChange_Response}
&lt;EMPTY&gt;
## TimeZones {#TimeZones}
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=65)*
<p>Provides information about time zones and offers date-time conversion methods.</p>
<p>TODO(fxbug.dev/81902): Add time zone info methods, including offsets from UTC.</p>
### AbsoluteToCivilTime {#TimeZones.AbsoluteToCivilTime}
<p>Converts the given absolute time to a civil date and time in the given time zone, using the
Gregorian calendar.</p>
#### Request {#TimeZones.AbsoluteToCivilTime_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>time_zone_id</code></td>
<td>
<code><a class='link' href='#TimeZoneId'>TimeZoneId</a></code>
</td>
</tr>
<tr>
<td><code>absolute_time</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
</td>
</tr>
</table>
#### Response {#TimeZones.AbsoluteToCivilTime_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>result</code></td>
<td>
<code><a class='link' href='#TimeZones_AbsoluteToCivilTime_Result'>TimeZones_AbsoluteToCivilTime_Result</a></code>
</td>
</tr>
</table>
### CivilToAbsoluteTime {#TimeZones.CivilToAbsoluteTime}
<p>Converts the given civil date and time in the given time zone to nanoseconds since the Unix
epoch.</p>
#### Request {#TimeZones.CivilToAbsoluteTime_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>civil_time</code></td>
<td>
<code><a class='link' href='#CivilTime'>CivilTime</a></code>
</td>
</tr>
<tr>
<td><code>options</code></td>
<td>
<code><a class='link' href='#CivilToAbsoluteTimeOptions'>CivilToAbsoluteTimeOptions</a></code>
</td>
</tr>
</table>
#### Response {#TimeZones.CivilToAbsoluteTime_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>result</code></td>
<td>
<code><a class='link' href='#TimeZones_CivilToAbsoluteTime_Result'>TimeZones_CivilToAbsoluteTime_Result</a></code>
</td>
</tr>
</table>
### GetTimeZoneInfo {#TimeZones.GetTimeZoneInfo}
<p>Retrieves details about a time zone at a specified one.</p>
#### Request {#TimeZones.GetTimeZoneInfo_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>time_zone_id</code></td>
<td>
<code><a class='link' href='#TimeZoneId'>TimeZoneId</a></code>
</td>
</tr>
<tr>
<td><code>at_time</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
</td>
</tr>
</table>
#### Response {#TimeZones.GetTimeZoneInfo_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>result</code></td>
<td>
<code><a class='link' href='#TimeZones_GetTimeZoneInfo_Result'>TimeZones_GetTimeZoneInfo_Result</a></code>
</td>
</tr>
</table>
## **STRUCTS**
### CalendarId {#CalendarId data-text="CalendarId"}
*Defined in [fuchsia.intl/intl.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/intl.fidl;l=38)*
<p>Typed identifier for a single calendar system. Currently consists only of a calendar ID.</p>
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="CalendarId.id">
<td><code>id</code></td>
<td>
<code>string</code>
</td>
<td><p>Unicode BCP-47 Locale Identifier with an undefined language tag and a single extension
specifying the calendar ID (from
https://unicode.org/repos/cldr/trunk/common/bcp47/calendar.xml).</p>
<p>Examples:
&quot;und-u-ca-gregory&quot;
&quot;und-u-ca-islamic&quot;</p>
</td>
<td>No default</td>
</tr>
</table>
### LocaleId {#LocaleId data-text="LocaleId"}
*Defined in [fuchsia.intl/intl.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/intl.fidl;l=17)*
<p>Typed identifier for a single Locale, which is a set of internationalization-related properties.</p>
<p>Most APIs that consume locales will probably want to accept a vector of locales to account for
priority.</p>
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="LocaleId.id">
<td><code>id</code></td>
<td>
<code>string</code>
</td>
<td><p>Unicode BCP-47 Locale Identifier
(http://www.unicode.org/reports/tr35/#BCP_47_Conformance).</p>
<p>Must be canonicalized and well-formed. This field should not be populated from arbitrary
user- or third-party input, but instead generated programmatically.</p>
<p>Includes language, region, script, and variant, plus Unicode extensions (under the &quot;u&quot;
singleton). Other extensions are allowed but ignored.</p>
<p>Examples:
&quot;en-US&quot;
American English
&quot;fr-u-hc-h12&quot;
French, with 12-hour clock
&quot;ar-EG-u-fw-mon-nu-latn&quot;
Egyptian Arabic with &quot;Latin&quot; numerals and first day of week on Monday</p>
</td>
<td>No default</td>
</tr>
</table>
### TimeZoneId {#TimeZoneId data-text="TimeZoneId"}
*Defined in [fuchsia.intl/intl.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/intl.fidl;l=53)*
<p>Typed identifier for a time zone.</p>
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="TimeZoneId.id">
<td><code>id</code></td>
<td>
<code>string</code>
</td>
<td><p>Time zone ID from tzdata, e.g. &quot;America/New_York&quot;. See https://www.iana.org/time-zones.</p>
</td>
<td>No default</td>
</tr>
</table>
### TimeZones_AbsoluteToCivilTime_Response {#TimeZones_AbsoluteToCivilTime_Response data-text="TimeZones_AbsoluteToCivilTime_Response"}
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=75)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="TimeZones_AbsoluteToCivilTime_Response.civil_time">
<td><code>civil_time</code></td>
<td>
<code><a class='link' href='#CivilTime'>CivilTime</a></code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
### TimeZones_CivilToAbsoluteTime_Response {#TimeZones_CivilToAbsoluteTime_Response data-text="TimeZones_CivilToAbsoluteTime_Response"}
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=89)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="TimeZones_CivilToAbsoluteTime_Response.absolute_time">
<td><code>absolute_time</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#time'>time</a></code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
### TimeZones_GetTimeZoneInfo_Response {#TimeZones_GetTimeZoneInfo_Response data-text="TimeZones_GetTimeZoneInfo_Response"}
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=100)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="TimeZones_GetTimeZoneInfo_Response.time_zone_info">
<td><code>time_zone_info</code></td>
<td>
<code><a class='link' href='#TimeZoneInfo'>TimeZoneInfo</a></code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
## **ENUMS**
### DayOfWeek [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#DayOfWeek data-text="DayOfWeek"}
Type: <code>uint8</code>
*Defined in [fuchsia.intl/calendar.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/calendar.fidl;l=8)*
<p>Enumeration of the days of the week.</p>
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="DayOfWeek.SUNDAY">
<td><h3 id="DayOfWeek.SUNDAY" class="add-link hide-from-toc">SUNDAY</h3></td>
<td><code>1</code></td>
<td></td>
</tr>
<tr id="DayOfWeek.MONDAY">
<td><h3 id="DayOfWeek.MONDAY" class="add-link hide-from-toc">MONDAY</h3></td>
<td><code>2</code></td>
<td></td>
</tr>
<tr id="DayOfWeek.TUESDAY">
<td><h3 id="DayOfWeek.TUESDAY" class="add-link hide-from-toc">TUESDAY</h3></td>
<td><code>3</code></td>
<td></td>
</tr>
<tr id="DayOfWeek.WEDNESDAY">
<td><h3 id="DayOfWeek.WEDNESDAY" class="add-link hide-from-toc">WEDNESDAY</h3></td>
<td><code>4</code></td>
<td></td>
</tr>
<tr id="DayOfWeek.THURSDAY">
<td><h3 id="DayOfWeek.THURSDAY" class="add-link hide-from-toc">THURSDAY</h3></td>
<td><code>5</code></td>
<td></td>
</tr>
<tr id="DayOfWeek.FRIDAY">
<td><h3 id="DayOfWeek.FRIDAY" class="add-link hide-from-toc">FRIDAY</h3></td>
<td><code>6</code></td>
<td></td>
</tr>
<tr id="DayOfWeek.SATURDAY">
<td><h3 id="DayOfWeek.SATURDAY" class="add-link hide-from-toc">SATURDAY</h3></td>
<td><code>7</code></td>
<td></td>
</tr>
</table>
### Month [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Month data-text="Month"}
Type: <code>uint8</code>
*Defined in [fuchsia.intl/calendar.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/calendar.fidl;l=19)*
<p>Enumeration of the months of the year.</p>
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="Month.JANUARY">
<td><h3 id="Month.JANUARY" class="add-link hide-from-toc">JANUARY</h3></td>
<td><code>1</code></td>
<td></td>
</tr>
<tr id="Month.FEBRUARY">
<td><h3 id="Month.FEBRUARY" class="add-link hide-from-toc">FEBRUARY</h3></td>
<td><code>2</code></td>
<td></td>
</tr>
<tr id="Month.MARCH">
<td><h3 id="Month.MARCH" class="add-link hide-from-toc">MARCH</h3></td>
<td><code>3</code></td>
<td></td>
</tr>
<tr id="Month.APRIL">
<td><h3 id="Month.APRIL" class="add-link hide-from-toc">APRIL</h3></td>
<td><code>4</code></td>
<td></td>
</tr>
<tr id="Month.MAY">
<td><h3 id="Month.MAY" class="add-link hide-from-toc">MAY</h3></td>
<td><code>5</code></td>
<td></td>
</tr>
<tr id="Month.JUNE">
<td><h3 id="Month.JUNE" class="add-link hide-from-toc">JUNE</h3></td>
<td><code>6</code></td>
<td></td>
</tr>
<tr id="Month.JULY">
<td><h3 id="Month.JULY" class="add-link hide-from-toc">JULY</h3></td>
<td><code>7</code></td>
<td></td>
</tr>
<tr id="Month.AUGUST">
<td><h3 id="Month.AUGUST" class="add-link hide-from-toc">AUGUST</h3></td>
<td><code>8</code></td>
<td></td>
</tr>
<tr id="Month.SEPTEMBER">
<td><h3 id="Month.SEPTEMBER" class="add-link hide-from-toc">SEPTEMBER</h3></td>
<td><code>9</code></td>
<td></td>
</tr>
<tr id="Month.OCTOBER">
<td><h3 id="Month.OCTOBER" class="add-link hide-from-toc">OCTOBER</h3></td>
<td><code>10</code></td>
<td></td>
</tr>
<tr id="Month.NOVEMBER">
<td><h3 id="Month.NOVEMBER" class="add-link hide-from-toc">NOVEMBER</h3></td>
<td><code>11</code></td>
<td></td>
</tr>
<tr id="Month.DECEMBER">
<td><h3 id="Month.DECEMBER" class="add-link hide-from-toc">DECEMBER</h3></td>
<td><code>12</code></td>
<td></td>
</tr>
</table>
### RepeatedTimeConversion [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#RepeatedTimeConversion data-text="RepeatedTimeConversion"}
Type: <code>int32</code>
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=23)*
<p>During a transition from daylight savings to standard time (when the clock is turned back), a
civil time can correspond to two possible absolute times. This setting determines which of those
times should be assumed during the conversion to absolute time.</p>
<p>TODO(fxbug.dev/82309): Implement <code>AFTER_TRANSITION</code>.</p>
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="RepeatedTimeConversion.BEFORE_TRANSITION">
<td><h3 id="RepeatedTimeConversion.BEFORE_TRANSITION" class="add-link hide-from-toc">BEFORE_TRANSITION</h3></td>
<td><code>1</code></td>
<td><p>Returns the wall clock time before the transition.</p>
<p>For example, in &quot;America/New_York&quot; on the night of the fall transition to standard time,
<code>1:30 AM</code> is interpreted as <code>01:30-04:00</code> (EDT), which is <code>05:30Z</code>.</p>
</td>
</tr>
</table>
### SkippedTimeConversion [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#SkippedTimeConversion data-text="SkippedTimeConversion"}
Type: <code>int32</code>
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=36)*
<p>During a transition from standard time to daylight savings time (when the clock is turned
forward), a span of civil times is skipped (usually one hour). This setting determines how
invalid civil times within this span should be treated.</p>
<p>TODO(fxbug.dev/82309): Implement <code>BEFORE_TRANSITION</code> and <code>AFTER_TRANSITION</code>.</p>
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="SkippedTimeConversion.REJECT">
<td><h3 id="SkippedTimeConversion.REJECT" class="add-link hide-from-toc">REJECT</h3></td>
<td><code>1</code></td>
<td><p>Returns <code>TimeZonesError::INVALID_DATE</code> when trying to convert a skipped civil time.</p>
</td>
</tr>
<tr id="SkippedTimeConversion.NEXT_VALID_TIME">
<td><h3 id="SkippedTimeConversion.NEXT_VALID_TIME" class="add-link hide-from-toc">NEXT_VALID_TIME</h3></td>
<td><code>2</code></td>
<td><p>Returns the closest valid time after the requested time.</p>
<p>For example, in &quot;America/New_York&quot; on the night of the spring transition to daylight savings
time, <code>2:30 AM</code> doesn't exist, so the next valid time, <code>3:00 AM</code> (EDT) is returned instead.</p>
</td>
</tr>
</table>
### TemperatureUnit [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#TemperatureUnit data-text="TemperatureUnit"}
Type: <code>uint32</code>
*Defined in [fuchsia.intl/intl.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/intl.fidl;l=59)*
<p>Selection of <a href="https://en.wikipedia.org/wiki/Degree_(temperature)">temperature units</a>.</p>
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="TemperatureUnit.CELSIUS">
<td><h3 id="TemperatureUnit.CELSIUS" class="add-link hide-from-toc">CELSIUS</h3></td>
<td><code>0</code></td>
<td><p>The temperature should be formatted to show temperature in degrees Celsius.</p>
</td>
</tr>
<tr id="TemperatureUnit.FAHRENHEIT">
<td><h3 id="TemperatureUnit.FAHRENHEIT" class="add-link hide-from-toc">FAHRENHEIT</h3></td>
<td><code>1</code></td>
<td><p>The temperature should be formatted to show temperature in degrees Fahrenheit.</p>
</td>
</tr>
</table>
### TimeZonesError [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#TimeZonesError data-text="TimeZonesError"}
Type: <code>int32</code>
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=9)*
<table>
<tr><th>Name</th><th>Value</th><th>Description</th></tr>
<tr id="TimeZonesError.INTERNAL_ERROR">
<td><h3 id="TimeZonesError.INTERNAL_ERROR" class="add-link hide-from-toc">INTERNAL_ERROR</h3></td>
<td><code>1</code></td>
<td><p>An internal error has occurred within the service.</p>
</td>
</tr>
<tr id="TimeZonesError.UNKNOWN_TIME_ZONE">
<td><h3 id="TimeZonesError.UNKNOWN_TIME_ZONE" class="add-link hide-from-toc">UNKNOWN_TIME_ZONE</h3></td>
<td><code>2</code></td>
<td><p>The requested time zone ID is invalid.</p>
</td>
</tr>
<tr id="TimeZonesError.INVALID_DATE">
<td><h3 id="TimeZonesError.INVALID_DATE" class="add-link hide-from-toc">INVALID_DATE</h3></td>
<td><code>3</code></td>
<td><p>The provided date is out of range or invalid.</p>
</td>
</tr>
</table>
## **TABLES**
### CivilTime {#CivilTime data-text="CivilTime"}
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=108)*
<p>Describes a time on a civil calendar (Gregorian), with nanosecond precision. This is roughly
equivalent to the <code>tm</code> struct in <code>time.h</code> in the C standard library, and is intended as a
structured intermediate format for printing or parsing dates.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="CivilTime.year">
<td><h3 id="CivilTime.year" class="add-link hide-from-toc">1</h3></td>
<td><code>year</code></td>
<td>
<code>uint16</code>
</td>
<td><p>Year, in the closed range <code>[1678, 2262]</code>.</p>
</td>
</tr>
<tr id="CivilTime.month">
<td><h3 id="CivilTime.month" class="add-link hide-from-toc">2</h3></td>
<td><code>month</code></td>
<td>
<code><a class='link' href='#Month'>Month</a></code>
</td>
<td><p>Month of the year.</p>
</td>
</tr>
<tr id="CivilTime.day">
<td><h3 id="CivilTime.day" class="add-link hide-from-toc">3</h3></td>
<td><code>day</code></td>
<td>
<code>uint8</code>
</td>
<td><p>Day of the month, in the closed range <code>[1, 31]</code>.</p>
</td>
</tr>
<tr id="CivilTime.hour">
<td><h3 id="CivilTime.hour" class="add-link hide-from-toc">4</h3></td>
<td><code>hour</code></td>
<td>
<code>uint8</code>
</td>
<td><p>Hour of the day, in the closed range <code>[0, 23]</code>.</p>
</td>
</tr>
<tr id="CivilTime.minute">
<td><h3 id="CivilTime.minute" class="add-link hide-from-toc">5</h3></td>
<td><code>minute</code></td>
<td>
<code>uint8</code>
</td>
<td><p>Minute of the hour, in the closed range <code>[0, 59]</code>.</p>
</td>
</tr>
<tr id="CivilTime.second">
<td><h3 id="CivilTime.second" class="add-link hide-from-toc">6</h3></td>
<td><code>second</code></td>
<td>
<code>uint8</code>
</td>
<td><p>Second of the minute, in the closed range <code>[0, 59]</code>.</p>
<p>(Note that Fuchsia does not currently calculate leap seconds when converting dates.)</p>
</td>
</tr>
<tr id="CivilTime.nanos">
<td><h3 id="CivilTime.nanos" class="add-link hide-from-toc">7</h3></td>
<td><code>nanos</code></td>
<td>
<code>uint64</code>
</td>
<td><p>Nanosecond, in the closed range <code>[0, 999_999_999]</code>.</p>
</td>
</tr>
<tr id="CivilTime.weekday">
<td><h3 id="CivilTime.weekday" class="add-link hide-from-toc">8</h3></td>
<td><code>weekday</code></td>
<td>
<code><a class='link' href='#DayOfWeek'>DayOfWeek</a></code>
</td>
<td><p>Day of the week.</p>
</td>
</tr>
<tr id="CivilTime.year_day">
<td><h3 id="CivilTime.year_day" class="add-link hide-from-toc">9</h3></td>
<td><code>year_day</code></td>
<td>
<code>uint16</code>
</td>
<td><p>Day of the year, in the closed range <code>[0, 365]</code>.</p>
</td>
</tr>
<tr id="CivilTime.time_zone_id">
<td><h3 id="CivilTime.time_zone_id" class="add-link hide-from-toc">10</h3></td>
<td><code>time_zone_id</code></td>
<td>
<code><a class='link' href='#TimeZoneId'>TimeZoneId</a></code>
</td>
<td><p>The time zone corresponding to this time. If omitted, the default is UTC.</p>
</td>
</tr>
</table>
### CivilToAbsoluteTimeOptions {#CivilToAbsoluteTimeOptions data-text="CivilToAbsoluteTimeOptions"}
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=48)*
<p>Options for <code>TimeZones.CivilToAbsoluteTime</code>.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="CivilToAbsoluteTimeOptions.repeated_time_conversion">
<td><h3 id="CivilToAbsoluteTimeOptions.repeated_time_conversion" class="add-link hide-from-toc">1</h3></td>
<td><code>repeated_time_conversion</code></td>
<td>
<code><a class='link' href='#RepeatedTimeConversion'>RepeatedTimeConversion</a></code>
</td>
<td><p>Optional setting for handling repeated times during backward daylight savings time
transitions.</p>
<p>Default: <code>BEFORE_TRANSITION</code>.</p>
</td>
</tr>
<tr id="CivilToAbsoluteTimeOptions.skipped_time_conversion">
<td><h3 id="CivilToAbsoluteTimeOptions.skipped_time_conversion" class="add-link hide-from-toc">2</h3></td>
<td><code>skipped_time_conversion</code></td>
<td>
<code><a class='link' href='#SkippedTimeConversion'>SkippedTimeConversion</a></code>
</td>
<td><p>Optional setting for handling skipped times during forward daylight savings time
transitions.</p>
<p>Default: <code>NEXT_VALID_TIME</code>.</p>
</td>
</tr>
</table>
### Profile {#Profile data-text="Profile"}
*Defined in [fuchsia.intl/intl.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/intl.fidl;l=73)*
<p>A collection of ranked internationalization properties.</p>
<p>There is no implied origin for this information; it might come from a user account, device
settings, a synthesis of user settings and app-specific overrides, or anywhere else.</p>
<p>Language-independent properties that are supported by Unicode BCP-47 Locale IDs (e.g.
first-day-of-week, time zone) are denormalized into the locale IDs in <code>locales</code>.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="Profile.locales">
<td><h3 id="Profile.locales" class="add-link hide-from-toc">1</h3></td>
<td><code>locales</code></td>
<td>
<code>vector&lt;<a class='link' href='#LocaleId'>LocaleId</a>&gt;</code>
</td>
<td><p>Ranked list of locales (in descending order of preference). The vector will always
be set, and always contain at least one element. For example,
locales = [ LocaleId(&quot;en-US&quot;) ] is valid, but locales = [], or locales = <unset> is not.</p>
</td>
</tr>
<tr id="Profile.calendars">
<td><h3 id="Profile.calendars" class="add-link hide-from-toc">2</h3></td>
<td><code>calendars</code></td>
<td>
<code>vector&lt;<a class='link' href='#CalendarId'>CalendarId</a>&gt;</code>
</td>
<td><p>Ranked list of calendars (in descending order of preference).
The first entry is the primary calendar, and will be equal to the calendar indicated
in <code>locales</code>.
The vector will always be set, and always contain at least one element.
The list allows multiple ranked preferences, and is intended for use
by applications that can display multiple calendar systems.</p>
</td>
</tr>
<tr id="Profile.time_zones">
<td><h3 id="Profile.time_zones" class="add-link hide-from-toc">3</h3></td>
<td><code>time_zones</code></td>
<td>
<code>vector&lt;<a class='link' href='#TimeZoneId'>TimeZoneId</a>&gt;</code>
</td>
<td><p>Ranked list of time zones (in descending order). The first entry is the primary time zone,
which should be used by default for formatting dates and times; it will be equal to the
calendar indicated in <code>locales</code>.
The list is intended for use by applications that can display multiple time zones, e.g.
a world clock.
The vector will always be set, and always contain at least one element.
On Fuchsia, the default time zone is always <code>DEFAULT_TIME_ZONE_ID</code> when
no more specific time zones have been defined or selected.</p>
</td>
</tr>
<tr id="Profile.temperature_unit">
<td><h3 id="Profile.temperature_unit" class="add-link hide-from-toc">4</h3></td>
<td><code>temperature_unit</code></td>
<td>
<code><a class='link' href='#TemperatureUnit'>TemperatureUnit</a></code>
</td>
<td><p>Selected temperature unit. The unit is always reported: if there is no
setting in the current environment, the default value of CELSIUS is
used.</p>
</td>
</tr>
</table>
### RegulatoryDomain {#RegulatoryDomain data-text="RegulatoryDomain"}
*Defined in [fuchsia.intl/intl.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/intl.fidl;l=7)*
<p>Typed identifier for a regulatory domain as specified in the IEEE 802.11 standard.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="RegulatoryDomain.country_code">
<td><h3 id="RegulatoryDomain.country_code" class="add-link hide-from-toc">1</h3></td>
<td><code>country_code</code></td>
<td>
<code>string</code>
</td>
<td><p>ISO 3166-1 alpha-2, a two-letter code representing a domain of operation.
(https://www.iso.org/publication/PUB500001.html)</p>
</td>
</tr>
</table>
### TimeZoneInfo {#TimeZoneInfo data-text="TimeZoneInfo"}
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=136)*
<p>Describes a Time Zone's properties at a particular moment in time.</p>
<p>TODO(fxbug.dev/81902): Additional fields with a breakdown of offsets and DST status.</p>
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="TimeZoneInfo.id">
<td><h3 id="TimeZoneInfo.id" class="add-link hide-from-toc">1</h3></td>
<td><code>id</code></td>
<td>
<code><a class='link' href='#TimeZoneId'>TimeZoneId</a></code>
</td>
<td><p>The time zone's IANA ID.</p>
</td>
</tr>
<tr id="TimeZoneInfo.total_offset_at_time">
<td><h3 id="TimeZoneInfo.total_offset_at_time" class="add-link hide-from-toc">2</h3></td>
<td><code>total_offset_at_time</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code>
</td>
<td><p>The total offset (including Daylight Savings, if the time zone is in Daylight Savings Time)
from UTC at the queried time (<code>at_time</code>). If the time zone is ahead of UTC, this will be a
positive value; if behind UTC, a negative value.</p>
</td>
</tr>
<tr id="TimeZoneInfo.in_dst_at_time">
<td><h3 id="TimeZoneInfo.in_dst_at_time" class="add-link hide-from-toc">3</h3></td>
<td><code>in_dst_at_time</code></td>
<td>
<code>bool</code>
</td>
<td><p>Indicates whether the time zone is in Daylight Savings Time at the queried time
(<code>at_time</code>).</p>
</td>
</tr>
</table>
## **UNIONS**
### TimeZones_AbsoluteToCivilTime_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#TimeZones_AbsoluteToCivilTime_Result data-text="TimeZones_AbsoluteToCivilTime_Result"}
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=75)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="TimeZones_AbsoluteToCivilTime_Result.response">
<td><h3 id="TimeZones_AbsoluteToCivilTime_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#TimeZones_AbsoluteToCivilTime_Response'>TimeZones_AbsoluteToCivilTime_Response</a></code>
</td>
<td></td>
</tr>
<tr id="TimeZones_AbsoluteToCivilTime_Result.err">
<td><h3 id="TimeZones_AbsoluteToCivilTime_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code><a class='link' href='#TimeZonesError'>TimeZonesError</a></code>
</td>
<td></td>
</tr>
</table>
### TimeZones_CivilToAbsoluteTime_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#TimeZones_CivilToAbsoluteTime_Result data-text="TimeZones_CivilToAbsoluteTime_Result"}
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=89)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="TimeZones_CivilToAbsoluteTime_Result.response">
<td><h3 id="TimeZones_CivilToAbsoluteTime_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#TimeZones_CivilToAbsoluteTime_Response'>TimeZones_CivilToAbsoluteTime_Response</a></code>
</td>
<td></td>
</tr>
<tr id="TimeZones_CivilToAbsoluteTime_Result.err">
<td><h3 id="TimeZones_CivilToAbsoluteTime_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code><a class='link' href='#TimeZonesError'>TimeZonesError</a></code>
</td>
<td></td>
</tr>
</table>
### TimeZones_GetTimeZoneInfo_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#TimeZones_GetTimeZoneInfo_Result data-text="TimeZones_GetTimeZoneInfo_Result"}
*Defined in [fuchsia.intl/time_zones.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/time_zones.fidl;l=100)*
<table>
<tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr>
<tr id="TimeZones_GetTimeZoneInfo_Result.response">
<td><h3 id="TimeZones_GetTimeZoneInfo_Result.response" class="add-link hide-from-toc">1</h3></td>
<td><code>response</code></td>
<td>
<code><a class='link' href='#TimeZones_GetTimeZoneInfo_Response'>TimeZones_GetTimeZoneInfo_Response</a></code>
</td>
<td></td>
</tr>
<tr id="TimeZones_GetTimeZoneInfo_Result.err">
<td><h3 id="TimeZones_GetTimeZoneInfo_Result.err" class="add-link hide-from-toc">2</h3></td>
<td><code>err</code></td>
<td>
<code><a class='link' href='#TimeZonesError'>TimeZonesError</a></code>
</td>
<td></td>
</tr>
</table>
## **CONSTANTS**
<table>
<tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr>
<tr id="DEFAULT_TIME_ZONE_ID">
<td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.intl/intl.fidl;l=50">DEFAULT_TIME_ZONE_ID</a></td>
<td><code>UTC</code></td>
<td><code>String</code></td>
<td><p>This is the time zone reported when no time zones have been set.</p>
</td>
</tr>
</table>