DateTimePicker
Introduction
DateTimePicker
is a widget in Supervisely that allows you to choose a date and time on the UI.
Function signature
DateTimePicker(
value=None
readonly=False,
disabled=False,
editable=False,
clearable=True,
size=None,
placeholder="Select date and time",
w_type="datetime",
format="yyyy-MM-dd HH:mm:ss",
widget_id=None,
)

Parameters
value
Union[int, str, list, tuple, None]
Default value in DateTimePicker
readonly
bool
Allows to set read only mode
disabled
bool
Allows to disable DateTimePicker
editable
bool
Allows to edit input
clearable
bool
Shows clear button
size
Literal["large", "small", "mini", None]
Size of input field
placeholder
str
DateTimePicker
placeholder
w_type
Literal["year", "month", "date", "datetime", "week", "datetimerange", "daterange"]
DateTimePicker
picker type
format
Literal["yyyy", "MM", "dd", "HH", "mm", "ss"]
Datetime displaying format
widget_id
str
ID of the widget
value
Determine DateTimePicker
default value.
type: Union[int, str, list, tuple, None]
default value: None
datetime_picker = DateTimePicker(value="2023-03-22 14:01:02")
placeholder
Determine DateTimePicker
placeholder.
type: str
default value: "Select date and time"
datetime_picker = DateTimePicker(placeholder="Select")
size
Determine DateTimePicker
size of the input.
type: Literal["large", "small", "mini", None]
default value: None
datetime_picker = DateTimePicker()
datetime_picker_mini = DateTimePicker(size="mini")
datetime_picker_small = DateTimePicker(size="small")
datetime_picker_large = DateTimePicker(size="large")
w_type
Determine DateTimePicker
picker type.
type: Literal["year", "month", "date", "datetime", "week", "datetimerange", "daterange"]
default value: "datetime"
datetime_picker = DateTimePicker(w_type="datetimerange")
format
Determine DateTimePicker
displaying format.
type: Literal["yyyy", "MM", "dd", "HH", "mm", "ss"]
default value: "yyyy-MM-dd HH:mm:ss"
datetime_picker = DateTimePicker(format="yyyy/MM/dd HH:mm")
readonly
Determine whether DateTimePicker
is read-only.
type: bool
default value: False
datetime_picker = DateTimePicker(value="2023-03-22 14:01:02", readonly=True)
disabled
Determine whether DateTimePicker
is disabled.
type: bool
default value: False
datetime_picker = DateTimePicker(disabled=True)
editable
Determine whether the input is editable.
type: bool
default value: False
clearable
Determine whether to show a clear button.
type: bool
default value: True
widget_id
The ID of the widget
type: str
default value: None
Methods and attributes
get_value()
Return DateTimePicker
current value.
set_value(value: Union[int, str, datetime, list, tuple])
Set DateTimePicker
value.
@value_changed
Decorator function to handle DateTimePicker
click.
Mini App Example
You can find this example in our GitHub repository:
supervisely-ecosystem/ui-widgets-demos/input/006_datetime_picker/src/main.py
Import libraries
import os
from datetime import datetime, timezone
import supervisely as sly
from dotenv import load_dotenv
from supervisely.app.widgets import Card, Container, Text, DateTimePicker
Init API client
First, we load environment variables with credentials and init API for communicating with Supervisely Instance:
load_dotenv("local.env")
load_dotenv(os.path.expanduser("~/supervisely.env"))
api = sly.Api()
Initialize DateTimePicker
and Text
widgets
DateTimePicker
and Text
widgetsdatetime_picker = DateTimePicker()
text = Text()
Create app layout
Prepare a layout for an app using Card
widget with the content
parameter.
card = Card(
"Date and Time Picker",
content=Container([datetime_picker, text]),
)
layout = Container(widgets=[card])
Create an app using a layout
Create an app object with a layout parameter.
app = sly.Application(layout=card)
Add functions to control widgets from Python code
@datetime_picker.value_changed
def set_only_date_from_today(datetime_value):
if datetime_value is not None:
format_string = "%Y-%m-%dT%H:%M:%S.%fZ"
selected = datetime.strptime(datetime_value, format_string).replace(tzinfo=timezone.utc)
current_day = datetime.combine(datetime.now().date(), datetime.min.time()).replace(
tzinfo=timezone.utc
)
if selected < current_day:
new_value = datetime.utcnow().replace(tzinfo=timezone.utc)
iso_value = new_value.strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + "Z"
datetime_picker.set_value(iso_value)
info = f"Selected date and time: {datetime_value}"
text.set(text=info, status="info")

Last updated
Was this helpful?