code: def _datetime_to_micros(dt: datetime) -> int:
      # The frontend is not aware of timezones and only expects a UTC-based
      # timestamp (in microseconds). Since we want to show the date/time exactly
      # as it is in the given datetime object, we just set the tzinfo to UTC and
      # do not do any timezone conversions. Only the backend knows about
      # original timezone and will replace the UTC timestamp in the deserialization.
      utc_dt = dt.replace(tzinfo=timezone.utc)
      return _delta_to_micros(utc_dt - UTC_EPOCH)
  
imports: from dataclasses import dataclass
  from datetime import date, datetime, time, timedelta, timezone, tzinfo
  from numbers import Integral, Real
  from textwrap import dedent
  from typing import TYPE_CHECKING, Any, List, Optional, Sequence, Tuple, TypeVar, Union, cast
  from typing_extensions import Final, TypeAlias
  from streamlit.elements.form import current_form_id
  from streamlit.elements.utils import check_callback_rules, check_session_state_rules, get_label_visibility_proto_value
  from streamlit.errors import StreamlitAPIException
  from streamlit.js_number import JSNumber, JSNumberBoundsException
  from streamlit.proto.Slider_pb2 import Slider
  from streamlit.runtime.metrics_util import gather_metrics
  from streamlit.runtime.scriptrunner import ScriptRunContext, get_script_run_ctx
  from streamlit.runtime.state import WidgetArgs, WidgetCallback, WidgetKwargs, get_session_state, register_widget
  from streamlit.runtime.state.common import compute_widget_id
  from streamlit.type_util import Key, LabelVisibility, maybe_raise_label_warnings, to_key
label_desc: Use image node_id 4 for calling a global function with example usage: _datetime_to_micros(dt) and returns: _delta_to_micros