Package org.zkoss.zul

## Class Datebox

- java.lang.Object
- - org.zkoss.zk.ui.AbstractComponent
  - - org.zkoss.zk.ui.HtmlBasedComponent
    - - org.zkoss.zul.impl.XulElement
      - - org.zkoss.zul.impl.InputElement
        - - org.zkoss.zul.impl.FormatInputElement
          - - org.zkoss.zul.impl.DateTimeFormatInputElement
            - - org.zkoss.zul.Datebox

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Cloneable`, `Component`, `Disable`, `Readonly`, `Scope`, `ComponentCtrl`, `Constrainted`

      public class Datebox
      extends DateTimeFormatInputElement

  An edit box for holding a date.

  The default format (`FormatInputElement.getFormat()`) depends on `DateFormats.getDateFormat(int, Locale, String)` and the current user's locale (unless `DateTimeFormatInputElement.setLocale(java.util.Locale)` is assigned. Please refer to `setFormat(java.lang.String)` for more details.

  Default `getZclass()`: z-datebox.(since 3.5.0)

  Author:
    tomyeh
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected class` | `Datebox.ExtraCtrl` | A utility class to implement `HtmlBasedComponent.getExtraCtrl()`.

    - ### Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent

      `AbstractComponent.Children, AbstractComponent.ForwardInfo, AbstractComponent.TargetInfo`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `DEFAULT_FORMAT` |

    - ### Fields inherited from class org.zkoss.zul.impl.DateTimeFormatInputElement

      `_locale, _tzone`

    - ### Fields inherited from class org.zkoss.zul.impl.InputElement

      `_cols, _value`

    - ### Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent

      `_zclass`

    - ### Fields inherited from interface org.zkoss.zk.ui.Component

      `APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE`

    - ### Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl

      `AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_CLONED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Datebox()` |
    `Datebox​(java.time.LocalDate value)` | Constructor with a given date.
    `Datebox​(java.time.LocalDateTime value)` | Constructor with a given date.
    `Datebox​(java.time.LocalTime value)` | Constructor with a given date.
    `Datebox​(java.time.ZonedDateTime value)` | Constructor with a given date.
    `Datebox​(java.util.Date date)` | Constructor with a given date.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` | Closes the calendar if it was dropped down.
    `protected java.lang.Object` | `coerceFromString​(java.lang.String value)` | Coerces the value passed to `InputElement.setText(java.lang.String)`.
    `protected java.lang.String` | `coerceToString​(java.lang.Object value)` | Coerces the value passed to `InputElement.setText(java.lang.String)`.
    `boolean` | `getClosePopupOnTimezoneChange()` | Returns whether to auto close the datebox popup after changing the timezone.
    `protected java.text.DateFormat` | `getDateFormat​(java.lang.String fmt)` | Returns the date format of the specified format
    `java.time.LocalDateTime` | `getDefaultDateTime()` | Returns the default datetime if the value is empty.
    `protected java.lang.String` | `getDefaultFormat()` | Returns the default format, which is used when constructing a datebox, or when `setFormat(java.lang.String)` is called with null or empty.
    `java.util.List<java.util.TimeZone>` | `getDisplayedTimeZones()` | Returns a list of the time zones that will be displayed at the client and allow user to select.
    `java.lang.Object` | `getExtraCtrl()` | Returns the client control for this component.
    `protected java.lang.String` | `getLocalizedFormat()` | Returns the localized format, which is used when constructing a datebox.
    `java.lang.String` | `getPosition()` |
    `PropertyAccess` | `getPropertyAccess​(java.lang.String prop)` | Returns the corresponding property access object from the given property name, if any.
    `java.lang.String` | `getRealFormat()` | Returns the real format, i.e., the combination of the format patterns, such as yyyy-MM-dd.
    `java.lang.String` | `getSelectLevel()` | Returns the level that a user can select.
    `boolean` | `getShowTodayLink()` | Returns whether enable to show the link that jump to today in day view
    `java.lang.String` | `getTodayLinkLabel()` | Returns the label of the link that jump to today in day view
    `java.lang.String` | `getZclass()` | Returns the ZK Cascading Style class for this component.
    `boolean` | `isButtonVisible()` | Returns whether the button (on the right of the textbox) is visible.
    `boolean` | `isLenient()` | Returns whether date/time parsing is to be lenient or not.
    `boolean` | `isStrictDate()` | Returns whether date/time should be strict or not.
    `boolean` | `isTimeZonesReadonly()` | Returns whether the list of the time zones to display is readonly.
    `boolean` | `isWeekOfYear()` | Returns whether enable to show the week number in the current calendar or not.
    `void` | `open()` | Drops down the calendar to select a date.
    `protected void` | `renderProperties​(ContentRenderer renderer)` | Renders the content of this component, excluding the enclosing tags and children.
    `void` | `service​(AuRequest request, boolean everError)` | Processes an AU request.
    `void` | `setButtonVisible​(boolean visible)` | Sets whether the button (on the right of the textbox) is visible.
    `void` | `setClosePopupOnTimezoneChange​(boolean closePopupOnTimezoneChange)` | Sets whether to auto close the datebox popup after changing the timezone.
    `void` | `setConstraint​(java.lang.String constr)` |
    `void` | `setDefaultDateTime​(java.time.LocalDateTime defaultDateTime)` | Sets the default datetime if the value is empty.
    `void` | `setDisplayedTimeZones​(java.lang.String dtzones)` | Sets a concatenation of a list of the time zones' ID, separated by comma, that will be displayed at the client and allow user to select.
    `void` | `setDisplayedTimeZones​(java.util.List<java.util.TimeZone> dtzones)` | Sets a list of the time zones that will be displayed at the client and allow user to select.
    `void` | `setFormat​(java.lang.String format)` | Sets the date format.
    `void` | `setLenient​(boolean lenient)` | Sets whether date/time parsing is to be lenient or not.
    `void` | `setOpen​(boolean open)` | Drops down or closes the calendar to select a date.
    `void` | `setPosition​(java.lang.String position)` | Position the popup datebox to the specified location.
    `void` | `setSelectLevel​(java.lang.String selectLevel)` | Sets the level that a user can select.
    `void` | `setShowTodayLink​(boolean showTodayLink)` | Sets whether enable to show the link that jump to today in day view
    `void` | `setStrictDate​(boolean strictDate)` | Sets whether or not date/time should be strict.
    `void` | `setTimeZone​(java.util.TimeZone tzone)` | Sets the time zone that this component belongs to, or null if the default time zone is used.
    `void` | `setTimeZonesReadonly​(boolean readonly)` | Sets whether the list of the time zones to display is readonly.
    `void` | `setTodayLinkLabel​(java.lang.String todayLinkLabel)` | Sets the label of the link that jump to today in day view
    `void` | `setWeekOfYear​(boolean weekOfYear)` | Sets whether enable to show the week number in the current calendar or not.
    `static int` | `toStyle​(java.lang.String format)` | Returns the styling index, or -111 if not matched.

    - ### Methods inherited from class org.zkoss.zul.impl.DateTimeFormatInputElement

      `getLocale, getTimeZone, getValue, getValueInLocalDate, getValueInLocalDateTime, getValueInLocalTime, getValueInZonedDateTime, getZoneId, setConstraint, setLocale, setLocale, setTimeZone, setValue, setValueInLocalDate, setValueInLocalDateTime, setValueInLocalTime, setValueInZonedDateTime, toDate, toDate, toDate, toZonedDateTime`

    - ### Methods inherited from class org.zkoss.zul.impl.FormatInputElement

      `getFormat`

    - ### Methods inherited from class org.zkoss.zul.impl.InputElement

      `checkUserError, clearErrorMessage, clearErrorMessage, clone, getCols, getConstraint, getConstraintString, getErrorboxIconSclass, getErrorboxSclass, getErrorMessage, getInputAttributes, getInstant, getMaxlength, getName, getPlaceholder, getRawText, getRawValue, getTargetValue, getText, getType, isChildable, isDisabled, isInplace, isInstant, isMultiline, isReadonly, isValid, marshall, onWrongValue, select, setCols, setDisabled, setErrorboxIconSclass, setErrorboxSclass, setErrorMessage, setInplace, setInputAttributes, setInputAttributes, setInsertedText, setInstant, setMaxlength, setName, setPlaceholder, setRawValue, setReadonly, setSelectedText, setSelectionRange, setText, setValueDirectly, showCustomError, unmarshall, validate`

    - ### Methods inherited from class org.zkoss.zul.impl.XulElement

      `getContext, getCtrlKeys, getPopup, getTooltip, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributes`

    - ### Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent

      `addSclass, evalCSSFlex, focus, getAction, getClientAction, getDraggable, getDroppable, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, removeSclass, removeSclass, setAction, setClass, setClientAction, setDraggable, setDroppable, setFocus, setHeight, setHeight0, setHeightDirectly, setHflex, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex, setVflex0, setVflexDirectly, setWidth, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly`

    - ### Methods inherited from class org.zkoss.zk.ui.AbstractComponent

      `addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, beforeParentChanged, destroyIndexCacheMap, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, disableHostChanged, enableBindingAnnotation, enableHostChanged, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getCallback, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, insertBefore, invalidate, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onParentChanged, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, replace, response, response, response, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_FORMAT

          public static final java.lang.String DEFAULT_FORMAT

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Datebox

          public Datebox()

    - #### Datebox

          public Datebox​(java.util.Date date)
                  throws WrongValueException

      Constructor with a given date.
      Parameters:
        `date` - the date to be assigned to this datebox initially.
        Notice that, if this datebox does not allow users to select the time (i.e., the format limited to year, month and day), the date specified here is better to set hour, minutes, seconds and milliseconds to zero (for the current timezone, `TimeZones.getCurrent()`), so it is easier to work with other libraries, such as SQL. `Dates` has a set of utilities to simplify the task.
      Throws:
        `WrongValueException`

    - #### Datebox

          public Datebox​(java.time.ZonedDateTime value)
                  throws WrongValueException

      Constructor with a given date.
      Parameters:
        `value` - the date to be assigned to this datebox initially.
        Notice that, if this datebox does not allow users to select the time (i.e., the format limited to year, month and day), the date specified here is better to set hour, minutes, seconds and milliseconds to zero (for the current timezone, `TimeZones.getCurrent()`), so it is easier to work with other libraries, such as SQL. `Dates` has a set of utilities to simplify the task.
      Throws:
        `WrongValueException`
      Since:
        9.0.0

    - #### Datebox

          public Datebox​(java.time.LocalDateTime value)
                  throws WrongValueException

      Constructor with a given date.
      Parameters:
        `value` - the date to be assigned to this datebox initially.
        Notice that, if this datebox does not allow users to select the time (i.e., the format limited to year, month and day), the date specified here is better to set hour, minutes, seconds and milliseconds to zero (for the current timezone, `TimeZones.getCurrent()`), so it is easier to work with other libraries, such as SQL. `Dates` has a set of utilities to simplify the task.
      Throws:
        `WrongValueException`
      Since:
        9.0.0

    - #### Datebox

          public Datebox​(java.time.LocalDate value)
                  throws WrongValueException

      Constructor with a given date.
      Parameters:
        `value` - the date to be assigned to this datebox initially.
        Notice that, if this datebox does not allow users to select the time (i.e., the format limited to year, month and day), the date specified here is better to set hour, minutes, seconds and milliseconds to zero (for the current timezone, `TimeZones.getCurrent()`), so it is easier to work with other libraries, such as SQL. `Dates` has a set of utilities to simplify the task.
      Throws:
        `WrongValueException`
      Since:
        9.0.0

    - #### Datebox

          public Datebox​(java.time.LocalTime value)
                  throws WrongValueException

      Constructor with a given date.
      Parameters:
        `value` - the date to be assigned to this datebox initially.
        Notice that, if this datebox does not allow users to select the time (i.e., the format limited to year, month and day), the date specified here is better to set hour, minutes, seconds and milliseconds to zero (for the current timezone, `TimeZones.getCurrent()`), so it is easier to work with other libraries, such as SQL. `Dates` has a set of utilities to simplify the task.
      Throws:
        `WrongValueException`
      Since:
        9.0.0

  - ### Method Detail

    - #### setWeekOfYear

          public void setWeekOfYear​(boolean weekOfYear)

      Sets whether enable to show the week number in the current calendar or not. [ZK EE]
      Since:
        6.5.0

    - #### isWeekOfYear

          public boolean isWeekOfYear()

      Returns whether enable to show the week number in the current calendar or not.

      Default: false

      Since:
        6.5.0

    - #### setStrictDate

          public void setStrictDate​(boolean strictDate)

      Sets whether or not date/time should be strict. If true, any invalid input like "Jan 0" or "Nov 31" would be refused. If false, it won't be checked and let lenient parsing decide.
      Since:
        8.6.0

    - #### isStrictDate

          public boolean isStrictDate()

      Returns whether date/time should be strict or not.

      Default: false.

      Since:
        8.6.0

    - #### getDefaultFormat

          protected java.lang.String getDefaultFormat()

      Returns the default format, which is used when constructing a datebox, or when `setFormat(java.lang.String)` is called with null or empty.

      Default: DateFormats.getDateFormat(DEFAULT, null, "yyyy/MM/dd") (see `DateFormats.getDateFormat(int, java.util.Locale, java.lang.String)`).

      Though you might override this method to provide your own default format, it is suggested to specify the format for the current thread with `DateFormats.setLocalFormatInfo(org.zkoss.text.DateFormatInfo)`.

    - #### getLocalizedFormat

          protected java.lang.String getLocalizedFormat()

      Returns the localized format, which is used when constructing a datebox.

      You might override this method to provide your own localized format.

    - #### isLenient

          public boolean isLenient()

      Returns whether date/time parsing is to be lenient or not.

      With lenient parsing, the parser may use heuristics to interpret inputs that do not precisely match this object's format. With strict parsing, inputs must match this object's format.

    - #### setLenient

          public void setLenient​(boolean lenient)

      Sets whether date/time parsing is to be lenient or not.

      Default: true.

      With lenient parsing, the parser may use heuristics to interpret inputs that do not precisely match this object's format. With strict parsing, inputs must match this object's format.

    - #### isButtonVisible

          public boolean isButtonVisible()

      Returns whether the button (on the right of the textbox) is visible.

      Default: true.

      Since:
        2.4.1

    - #### setButtonVisible

          public void setButtonVisible​(boolean visible)

      Sets whether the button (on the right of the textbox) is visible.
      Since:
        2.4.1

    - #### getPosition

          public java.lang.String getPosition()

      Returns:
        the datebox popup position
      Since:
        8.0.3

    - #### setPosition

          public void setPosition​(java.lang.String position)

      Position the popup datebox to the specified location.
      Parameters:
        `position` - where to position. Default: `after_start` Allowed values:
        - before_start
          the element appears above the anchor, aligned to the left.
        - before_center
          the element appears above the anchor, aligned to the center.
        - before_end
          the element appears above the anchor, aligned to the right.
        - after_start
          the element appears below the anchor, aligned to the left.
        - after_center
          the element appears below the anchor, aligned to the center.
        - after_end
          the element appears below the anchor, aligned to the right.
        - start_before
          the element appears to the left of the anchor, aligned to the top.
        - start_center
          the element appears to the left of the anchor, aligned to the middle.
        - start_after
          the element appears to the left of the anchor, aligned to the bottom.
        - end_before
          the element appears to the right of the anchor, aligned to the top.
        - end_center
          the element appears to the right of the anchor, aligned to the middle.
        - end_after
          the element appears to the right of the anchor, aligned to the bottom.
        - overlap/top_left
          the element overlaps the anchor, with anchor and element aligned at top-left.
        - top_center
          the element overlaps the anchor, with anchor and element aligned at top-center.
        - overlap_end/top_right
          the element overlaps the anchor, with anchor and element aligned at top-right.
        - middle_left
          the element overlaps the anchor, with anchor and element aligned at middle-left.
        - middle_center
          the element overlaps the anchor, with anchor and element aligned at middle-center.
        - middle_right
          the element overlaps the anchor, with anchor and element aligned at middle-right.
        - overlap_before/bottom_left
          the element overlaps the anchor, with anchor and element aligned at bottom-left.
        - bottom_center
          the element overlaps the anchor, with anchor and element aligned at bottom-center.
        - overlap_after/bottom_right
          the element overlaps the anchor, with anchor and element aligned at bottom-right.
        - at_pointer
          the element appears with the upper-left aligned with the mouse cursor.
        - after_pointer
          the element appears with the top aligned with the bottom of the mouse cursor, with the left side of the element at the horizontal position of the mouse cursor.
      Since:
        8.0.3

    - #### setFormat

          public void setFormat​(java.lang.String format)
                         throws WrongValueException

      Sets the date format.

      If null or empty is specified, `getDefaultFormat()` is assumed. Since 5.0.7, you could specify one of the following reserved words, and `DateFormats.getDateFormat(int, java.util.Locale, java.lang.String)` or `DateFormats.getDateTimeFormat(int, int, java.util.Locale, java.lang.String)` will be used to retrieve the real format.

      short | `DateFormats.getDateFormat(int, java.util.Locale, java.lang.String)` with `DateFormat.SHORT`
      medium | `DateFormats.getDateFormat(int, java.util.Locale, java.lang.String)` with `DateFormat.MEDIUM`
      long | `DateFormats.getDateFormat(int, java.util.Locale, java.lang.String)` with `DateFormat.LONG`
      full | `DateFormats.getDateFormat(int, java.util.Locale, java.lang.String)` with `DateFormat.FULL`

      To specify a date/time format, you could specify two reserved words, separated by a plus. For example, "medium+short" means `DateFormats.getDateTimeFormat(int, int, java.util.Locale, java.lang.String)` with the medium date styling and the short time styling.

      In additions, the format could be a combination of the following pattern letters:

      Letter | Date or Time Component | Presentation | Examples
      --- | --- | --- | ---
      `G` | Era designator | Text | `AD`
      `y` | Year | Year | `1996`; `96`
      `M` | Month in year | Month | `July`; `Jul`; `07`
      `w` | Week in year (starting at 1) | Number | `27`
      `W` | Week in month (starting at 1) | Number | `2`
      `D` | Day in year (starting at 1) | Number | `189`
      `d` | Day in month (starting at 1) | Number | `10`
      `F` | Day of week in month | Number | `2`
      `E` | Day in week | Text | `Tuesday`; `Tue`

      Overrides:
        `setFormat` in class `FormatInputElement`
      Throws:
        `WrongValueException`

    - #### toStyle

          public static int toStyle​(java.lang.String format)

      Returns the styling index, or -111 if not matched.

    - #### getRealFormat

          public java.lang.String getRealFormat()

      Returns the real format, i.e., the combination of the format patterns, such as yyyy-MM-dd.

      As described in `setFormat(java.lang.String)`, a developer could specify an abstract name, such as short, or an empty string as the format, and this method will convert it to a real date/time format.

      Overrides:
        `getRealFormat` in class `FormatInputElement`
      Since:
        5.0.7

    - #### setTimeZone

          public void setTimeZone​(java.util.TimeZone tzone)

      Sets the time zone that this component belongs to, or null if the default time zone is used.

      The default time zone is determined by `TimeZones.getCurrent()`.

      Notice that if `getDisplayedTimeZones()` was called with a non-empty list, the time zone must be one of it. Otherwise (including `tzone is null), the first timezone is selected.`

      Overrides:
        `setTimeZone` in class `DateTimeFormatInputElement`

    - #### getDisplayedTimeZones

          public java.util.List<java.util.TimeZone> getDisplayedTimeZones()

      Returns a list of the time zones that will be displayed at the client and allow user to select.

      Default: null

      Since:
        3.6.3

    - #### setDisplayedTimeZones

          public void setDisplayedTimeZones​(java.util.List<java.util.TimeZone> dtzones)

      Sets a list of the time zones that will be displayed at the client and allow user to select.

      If the `DateTimeFormatInputElement.getTimeZone()` is null, the first time zone in the list is assumed.

      Parameters:
        `dtzones` - a list of the time zones to display. If empty, it assumed to be null.
      Since:
        3.6.3

    - #### setDisplayedTimeZones

          public void setDisplayedTimeZones​(java.lang.String dtzones)

      Sets a concatenation of a list of the time zones' ID, separated by comma, that will be displayed at the client and allow user to select.

      The time zone is retrieved by calling TimeZone.getTimeZone().

      Parameters:
        `dtzones` - a concatenation of a list of the timezones' ID, such as `"America/Los_Angeles,GMT+8"`
      Since:
        3.6.3
      See Also:
        `setDisplayedTimeZones(List)`

    - #### isTimeZonesReadonly

          public boolean isTimeZonesReadonly()

      Returns whether the list of the time zones to display is readonly. If readonly, the user cannot change the time zone at the client.
      Since:
        3.6.3

    - #### setTimeZonesReadonly

          public void setTimeZonesReadonly​(boolean readonly)

      Sets whether the list of the time zones to display is readonly. If readonly, the user cannot change the time zone at the client.
      Since:
        3.6.3

    - #### setOpen

          public void setOpen​(boolean open)

      Drops down or closes the calendar to select a date. only works while visible
      Since:
        3.0.1
      See Also:
        `open()`, `close()`

    - #### open

          public void open()

      Drops down the calendar to select a date. The same as setOpen(true).
      Since:
        3.0.1

    - #### close

          public void close()

      Closes the calendar if it was dropped down. The same as setOpen(false).
      Since:
        3.0.1

    - #### service

          public void service​(AuRequest request,
                              boolean everError)

      Processes an AU request.

      Default: in addition to what are handled by `HtmlBasedComponent.service(org.zkoss.zk.au.AuRequest, boolean)`, it also handles onTimeZoneChange, onChange, onChanging and onError.

      Specified by:
        `service` in interface `ComponentCtrl`
      Overrides:
        `service` in class `InputElement`
        `everError` - whether any error ever occurred before processing this request.
      Since:
        5.0.0
      See Also:
        `AbstractComponent.setAuService(org.zkoss.zk.au.AuService)`

    - #### getExtraCtrl

          public java.lang.Object getExtraCtrl()

      Description copied from class: `HtmlBasedComponent`
      Returns the client control for this component. It is used only by component developers.

      Default: creates an instance of `HtmlBasedComponent.ExtraCtrl`.

      Specified by:
        `getExtraCtrl` in interface `ComponentCtrl`
      Overrides:
        `getExtraCtrl` in class `HtmlBasedComponent`
      Returns:
        null if no special handling required. If the component requires some special controls, it could return an object that implements one or several interfaces in the org.zkoss.zk.ui.ext.render package. For example, `Cropper`.
      See Also:
        `ComponentCtrl.getExtraCtrl()`

    - #### setConstraint

          public void setConstraint​(java.lang.String constr)

      Overrides:
        `setConstraint` in class `InputElement`
      Parameters:
        `constr` - a list of constraints separated by comma. Example: "between 20071012 and 20071223", "before 20080103"

    - #### coerceFromString

          protected java.lang.Object coerceFromString​(java.lang.String value)
                                               throws WrongValueException

      Description copied from class: `InputElement`
      Coerces the value passed to `InputElement.setText(java.lang.String)`.

      Deriving note:
      If you want to store the value in other type, say BigDecimal, you have to override `InputElement.coerceToString(java.lang.Object)` and `InputElement.coerceFromString(java.lang.String)` to convert between a string and your targeting type.

      Moreover, when `Textbox` is called, it calls this method with value = null. Derives shall handle this case properly.

      Specified by:
        `coerceFromString` in class `InputElement`
      Throws:
        `WrongValueException`

    - #### coerceToString

          protected java.lang.String coerceToString​(java.lang.Object value)

      Description copied from class: `InputElement`
      Coerces the value passed to `InputElement.setText(java.lang.String)`.

      Default: convert null to an empty string.

      Deriving note:
      If you want to store the value in other type, say BigDecimal, you have to override `InputElement.coerceToString(java.lang.Object)` and `InputElement.coerceFromString(java.lang.String)` to convert between a string and your targeting type.

      Specified by:
        `coerceToString` in class `InputElement`

    - #### getDateFormat

          protected java.text.DateFormat getDateFormat​(java.lang.String fmt)

      Returns the date format of the specified format

      Default: it uses SimpleDateFormat to format the date.

      Parameters:
        `fmt` - the pattern.

    - #### getZclass

          public java.lang.String getZclass()

      Description copied from class: `HtmlBasedComponent`
      Returns the ZK Cascading Style class for this component. It usually depends on the implementation of the mold (`AbstractComponent.getMold()`).

      Default: null (the default value depends on element).

      `HtmlBasedComponent.setZclass(java.lang.String)`) will completely replace the default style of a component. In other words, the default style of a component is associated with the default value of `HtmlBasedComponent.getZclass()`. Once it is changed, the default style won't be applied at all. If you want to perform small adjustments, use `HtmlBasedComponent.setSclass(java.lang.String)` instead.

      Overrides:
        `getZclass` in class `HtmlBasedComponent`
      See Also:
        `HtmlBasedComponent.getSclass()`

    - #### getShowTodayLink

          public boolean getShowTodayLink()

      Returns whether enable to show the link that jump to today in day view

      Default: false

      Returns:
        boolean
      Since:
        8.0.0

    - #### setShowTodayLink

          public void setShowTodayLink​(boolean showTodayLink)

      Sets whether enable to show the link that jump to today in day view
      Parameters:
        `showTodayLink` - show or hidden
      Since:
        8.0.0

    - #### getTodayLinkLabel

          public java.lang.String getTodayLinkLabel()

      Returns the label of the link that jump to today in day view

      Default: Today

      Returns:
        String
      Since:
        8.0.4

    - #### setTodayLinkLabel

          public void setTodayLinkLabel​(java.lang.String todayLinkLabel)

      Sets the label of the link that jump to today in day view
      Parameters:
        `todayLinkLabel` - today link label
      Since:
        8.0.4

    - #### getDefaultDateTime

          public java.time.LocalDateTime getDefaultDateTime()

      Returns the default datetime if the value is empty.

      Default: null (means current datetime)

      Since:
        9.0.0

    - #### setDefaultDateTime

          public void setDefaultDateTime​(java.time.LocalDateTime defaultDateTime)

      Sets the default datetime if the value is empty.
      Parameters:
        `defaultDateTime` - Default datetime. null means current datetime.
      Since:
        9.0.0

    - #### getSelectLevel

          public java.lang.String getSelectLevel()

      Returns the level that a user can select.

      Default: "day"

      Returns:
        the level that a user can select
      Since:
        9.5.1

    - #### setSelectLevel

          public void setSelectLevel​(java.lang.String selectLevel)

      Sets the level that a user can select. The valid options are "day", "month", and "year".
      Parameters:
        `selectLevel` - the level that a user can select
      Since:
        9.5.1

    - #### getClosePopupOnTimezoneChange

          public boolean getClosePopupOnTimezoneChange()

      Returns whether to auto close the datebox popup after changing the timezone.

      Default: true

      Returns:
        boolean
      Since:
        9.6.0

    - #### setClosePopupOnTimezoneChange

          public void setClosePopupOnTimezoneChange​(boolean closePopupOnTimezoneChange)

      Sets whether to auto close the datebox popup after changing the timezone.
      Parameters:
        `closePopupOnTimezoneChange` - shall close the datebox popup or not
      Since:
        9.6.0

    - #### getPropertyAccess

          public PropertyAccess getPropertyAccess​(java.lang.String prop)

      Description copied from interface: `ComponentCtrl`
      Returns the corresponding property access object from the given property name, if any.
      Specified by:
        `getPropertyAccess` in interface `ComponentCtrl`
      Overrides:
        `getPropertyAccess` in class `DateTimeFormatInputElement`
      Parameters:
        `prop` - the name of the property
      Returns:
        null it means not to support for the property name.

    - #### renderProperties

          protected void renderProperties​(ContentRenderer renderer)
                                   throws java.io.IOException

      Description copied from class: `HtmlBasedComponent`
      Renders the content of this component, excluding the enclosing tags and children.

      See also ZK Client-side Reference: Property Rendering

      Overrides:
        `renderProperties` in class `DateTimeFormatInputElement`
      Throws:
        `java.io.IOException`