XSD allows you to "derive types" to restrict dates to certain values or ranges.

what is iso dating-49

(I won't be dealing with times in this blog.) The second rub with IS 8601 is that it defines multiple formats.

So as well as YYYY-MM-DD for years, such as 2000-01-01 you can also have the basic form 20000101.

You can do the same with an explicit base and get the notations 19990101/P365D for example.

The more exotic you get, the more chance that you have a need for what the standard calls "a mutual agreement" where the exchanging parties agree on what the notation means, because it could have several different meanings under the standard.

(It gives this count as a simple integer.) See section 8.5.2 Calculation settings in ISO ODF for more information.

The draft specification for ISO Open XML, from Ecma, does have one oddity, which has attracted much controversy.

Spreadsheets very often actually store, manipulate or transfer dates as ordinal values from an index point: this makes calculations with dates very straightforwards.

Representing dates as ordinals is also used in other ISO standards: for example, the SQL_DATE data type gives the number of days since January 1, 1841.

In Spreadsheet ML table cells only, dates are actually saved as durations, as ordinals.

The base is set by an attribute on the workbook, and reflects the supported ranges of Excel on different platforms (on Windows, Excel does not support dates before 1900; on the Macintosh, Excel does not support dates before 1904; putting in such a date will be serialized out as 0 into Spreadsheet ML.) The reasons for saving as as duration rather than a date are obvious: it reflects the internal format directly, allows faster loading and save times to the XML, and allows faster loading and saving times when interfacing with an SQL system that uses SQL_DATE etc.

ODF and Open XML both use ISO 8601 dates in the YYYY-MM-DD form throughout for all dates.