XSD Date and Time
Date and time data types are used to represent date and time in the XML documents.
Date Data Type
The date data type (<xs:date>) is used to specify a date.
The date is specified in the following format YYYY-MM-DD, where:
YYYYindicates the yearMMindicates the monthDDindicates the day
All components are mandatory!
Let's see an example:
<xs:element name="mydate" type="xs:date"/>
and an element in your XML document look like this:
<mydate>1999-06-14</mydate>
Time Zones
To specify a time zone, you can either enter a date in UTC time by adding a Z behind the date
<mydate>1999-06-14Z</mydate>
or you can specify an offset from the UTC time by adding a positive or negative time behind the date
<mydate>2002-09-24-06:00</mydate>
<mydate>2002-09-24+06:00</mydate>
Time Data Type
The time data type (<xs:dataType>) is used to specify a time.
The time is specified in the following form hh:mm:ss where:
hhindicates the hourmmindicates the minutessindicates the second
All components are mandatory!
Let's see an example:
<xs:element name="mytime" type="xs:time"/>
and an element in your XML document look like this:
<mytime>15:00:00</mytime>
<mytime>15:28:10.5</mytime>
Time Zones
To specify a time zone, you can either enter a time in UTC time by adding a Z behind the time:
<mytime>15:28:10Z</mytime>
or you can specify an offset from the UTC time by adding a positive or negative time behind the time:
<mytime>15:28:10-06:00</mytime>
<mytime>15:28:10+06:00</mytime>
DateTime Data Type
The dateTime data type (<xs:dateTime>) is used to specify a date and a time.
The dateTime is specified in the following form YYYY-MM-DDThh:mm:ss where:
YYYYindicates the yearMMindicates the monthDDindicates the dayTindicates the start of the required time sectionhhindicates the hourmmindicates the minutessindicates the second
All components are mandatory!
Let's see an example:
<xs:element name="mydatetime" type="xs:dateTime"/>
and an element in your XML document look like this:
<mydatetime>1999-06-14T15:50:00</mydatetime>
<mydatetime>1999-06-14T15.50.00</mydatetime>
Time Zones
To specify a time zone, you can either enter a dateTime in UTC time by adding a Z behind the time:
<mydatetime>1999-06-14T15:50:00Z</mydatetime>
or you can specify an offset from the UTC time by adding a positive or negative time behind the time:
<mydatetime>1999-06-14T15:50:00-06:00</mydatetime>
<mydatetime>1999-06-14T15:50:00+06:00</mydatetime>
Duration Data Type
The duration data type (<xs:duration>) is used to represent time interval in PnYnMnDTnHnMnS format. Each component
is optional except P.
Prepresents start of date sectionnYrepresents yearnMrepresents monthnDrepresents dayTrepresents start of time sectionnHrepresents hoursnMrepresents minutesnSrepresents seconds
'T' is required if you are going to specify hours, minutes, or seconds.
The duration declaration is as follows:
<xs:element name="period" type="xs:duration"/>
Example of a period of 5 years:
<period>P5Y</period>
Example of a period of five years, two months, and 10 days:
<period>P5Y2M10D</period>
Example of a period of 15 hours:
<period>P5Y2M10D</period>
Negative Duration
To specify a negative duration, enter a minus sign before the P.
Example of a period of minus 15 days:
<period>-P15D</period>
Date and Time Data Types
The following is a list of commonly used date data types.
| Name | Description |
|---|---|
date | Defines a date value |
dateTime | Defines a date and time value |
duration | Defines a time interval |
gDay | Defines a part of a date - the day (DD) |
gMonth | Defines a part of a date - the month (MM) |
gMonthDay | Defines a part of a date - the month and day (MM-DD) |
gYear | Defines a part of a date - the year (YYYY) |
gYearMonth | Defines a part of a date - the year and month (YYYY-MM) |
time | Defines a time value |
Restrictions on Date Data Types
Restrictions that can be used with Date data types:
enumerationmaxExclusivemaxInclusiveminExclusiveminInclusivepatternwhiteSpace
See XSD Restrictions chapter to learn more.