DateTimePicker
is a widget in Supervisely that allows you to choose a date and time on the UI.
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 | Type | Description |
---|---|---|
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 |
Determine DateTimePicker
default value.
type: Union[int, str, list, tuple, None]
default value: None
datetime_picker = DateTimePicker(value="2023-03-22 14:01:02")
Determine DateTimePicker
placeholder.
type: str
default value: "Select date and time"
datetime_picker = DateTimePicker(placeholder="Select")
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")
Determine DateTimePicker
picker type.
type: Literal["year", "month", "date", "datetime", "week", "datetimerange", "daterange"]
default value: "datetime"
datetime_picker = DateTimePicker(w_type="datetimerange")
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")
Determine whether DateTimePicker
is read-only.
type: bool
default value: False
datetime_picker = DateTimePicker(value="2023-03-22 14:01:02", readonly=True)
Determine whether DateTimePicker
is disabled.
type: bool
default value: False
datetime_picker = DateTimePicker(disabled=True)
Determine whether the input is editable.
type: bool
default value: False
Determine whether to show a clear button.
type: bool
default value: True
The ID of the widget
type: str
default value: None
Attributes and Methods | Description |
---|---|
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. |
You can find this example in our GitHub repository:
supervisely-ecosystem/ui-widgets-demos/input/006_datetime_picker/src/main.py
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
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()
datetime_picker = DateTimePicker()
text = Text()
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 object with a layout parameter.
app = sly.Application(layout=card)
@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")