KitZonedDateTimeField
Date, local-time and zone input with explicit ambiguity resolution.

Bind all three texts and handle resolve-requested(ZonedDateTimeDraft) with an IANA zone resolver. Project resolution and resolution-message, then handle ambiguity-chosen when required.
ZonedTimePresentation distinguishes unresolved, unique, ambiguous, nonexistent and invalid-zone. Ambiguity offers AmbiguousTimeChoice.earlier or .later; no occurrence is silently chosen.
Complete example
This complete Slint file is a visual composition used to produce the screenshot above. Internal strings without a label property retain the kit’s default language; system dialogs follow the host platform. Projected state and callbacks requesting a decision need host wiring; the standalone fixture does not supply that controller. Set up the Rust project, then see the typed controller application for working editing, validation and selection.
// SPDX-License-Identifier: GPL-3.0-or-later
// Display projections are fixtures. Validate accepted domain values in Rust.
import { KitTheme, KitThemes, KitZonedDateTimeField, ZonedTimePresentation } from "@kit/kit.slint";
export component Example inherits Window {
title: "KitZonedDateTimeField example";
preferred-width: 480px;
preferred-height: 390px;
max-width: 100000px;
max-height: 100000px;
background: root.theme.canvas;
in-out property <KitTheme> theme: KitThemes.light;
in-out property <string> status;
VerticalLayout {
padding: 24px; spacing: 16px; alignment: start;
Text { text: "Zoned Date Time Field"; color: root.theme.text-primary; font-size: 20px * root.theme.text-scale; font-weight: 600; }
KitZonedDateTimeField { theme: root.theme; label: "Meeting"; date-text: "2026-10-17"; time-text: "09:30"; zone-text: "America/Toronto"; resolution: ZonedTimePresentation.unique; resolution-message: "UTC−04:00"; }
if root.status != "": Text { text: root.status; color: root.theme.text-secondary; font-size: 12px * root.theme.text-scale; wrap: word-wrap; }
}
}
Public API
Inherits Rectangle.
The declarations below come from the component source. Parent properties remain available; see the controller guide for state management.
Properties
| Name | Type | Direction |
|---|---|---|
theme |
KitTheme |
in |
control-size |
ControlSize |
in |
access |
FieldAccess |
in |
accepted-local |
LocalDateTimeView |
in |
clock-format |
ClockFormat |
in |
precision |
TimePrecision |
in |
label |
string |
in |
date-error |
string |
in |
time-error |
string |
in |
zone-error |
string |
in |
resolution-message |
string |
in |
resolution |
ZonedTimePresentation |
in |
date-text |
string |
in-out |
time-text |
string |
in-out |
zone-text |
string |
in-out |
Types and variants
Names below use Slint syntax. Shared Rust domain types live in slint_kit; presentation enums come from the Rust types generated by Slint.
| Type | Declaration |
|---|---|
enum AmbiguousTimeChoice |
earlier, later |
struct CivilDateView |
year: int, month: int, day: int |
enum ClockFormat |
twenty-four-hour, twelve-hour |
enum ControlSize |
compact, medium, comfortable |
enum FieldAccess |
editable, read-only, disabled |
struct LocalDateTimeView |
date: CivilDateView, time: LocalTimeView |
struct LocalTimeView |
hour: int, minute: int, second: int |
enum TimePrecision |
minute, second |
struct ZonedDateTimeDraft |
date: string, time: string, zone: string |
enum ZonedTimePresentation |
unresolved, unique, ambiguous, nonexistent, invalid-zone |
Callbacks
edited(ZonedDateTimeDraft)resolve-requested(ZonedDateTimeDraft)ambiguity-chosen(AmbiguousTimeChoice)cancelled()
Functions
take-focus()