From Documentation



An edit box for holding a time (a java.util.Date Object) , but only Hour & Minute are used.


ZKCompRef Timebox.png

<timebox cols="11"/>

Integrate Moment.js

Since 8.5.1 The JavaScript widgets including Datebox,Timebox,Timepicker rely on moment.js and moment-timezone.js to handle time zone information more accurately.

To check the included moment.js version, enter zk.mm.version in the browser developer console tab.



You could specify what value to accept for input controls by use of the constraint property. It could be no empty.

If you prefer to display different message to the default one, you can append the error message to the constraint with a colon.

<timebox constraint="no empty: cannot be empty"/>


  • The error message, if specified, must be the last element and start with colon.
  • To support multiple languages, you could use the 「l」 function as depicted in the Internationalization chapter.
<timebox constraint="no empty: ${c:l('err.time.required')}"/>


Use a to signify it is am or pm. The input string follows the formatting of the SimpleDateFormat.

Below is an example of using a within the format.

<timebox cols="20" format="a hh:mm:ss"/>

24 hours mode:

<timebox cols="8" format="HH:mm:ss"/>

Since 5.0.7 In addition to specifying the format explicitly, you could specify the styling. There are four different types of styling: short, medium, long and full (representing the styling of java.text.DateFormat). For example, you could specify the styling rather than the real format as follows.

<timebox format="short"/>
<timebox format="long"/>

Then the real format of the timebox will be decided at run time depending the configuration. For more information, please refer to ZK Developer's Reference: Date and Time Formatting.


By default, the real format depends on the current locale (i.e., Locales.getCurrent(). However, you could specify the locale for an individual instance such as:

<timebox format="medium" locale="de_DE"/>
<timebox format="long" locale="fr"/>


You should set text attribute after format attribute or ZK might not convert the specified text well.

<timebox format="hh:mm:ss a" locale="en" text="12:00:00 AM"/>
  • If you set format later than setting text attribute, ZK might probably fail to convert the text to a Date object according to default format and throw org.zkoss.zk.ui.WrongValueException.

Inherited Functions

Please refer to FormatInputElement for inherited functions.

Supported Events

Event Type
None None

Supported Molds

Available molds of a component are defined in lang.xml embedded in zul.jar.

Timebox mold default.png
Timebox mold rounded.png

Since 5.0.0

Supported Children


Use Cases

Version Description Example Location

Version History

Last Update : 2022/09/07

Version Date Content
5.0.7 April, 2011 Timebox.setFormat(String) supported the styling.
5.0.7 April, 2011 Timebox.setLocale(Locale) was introduced to specify a locale other than the current locale.

Last Update : 2022/09/07

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.