30 Dec 2016
is unambiguous, understandable and acceptable to all English speakers, so there usually is no real need to offer customizable date display format when you use this. Dec 30, 2016
is a little worse.
On the Internet and in English software (being the default and fallback language for many non-natives and travelers), an all-numeric, three-part Gregorian date with two equal separators shall always use strict order of items, i.e. either big or little endian, never a mix.
The separators may also slightly favor one endianness over the other, e.g. big/small
(think URL paths) and small.big.
(but big.float
).
If you want to preserve spoken US order, always either use two different separators (possibly including ordinal two-letter suffixes) or verbal months. If you ever need to shorten the year to two digits add an apostrophe in front.
Forbidden numeric date display formats
These are inherently broken and put a higher cognitive load on the reader than necessary.
- MMDDYYYY:
12/30/2016
, 12.30.2016
, 12-30-2016
- YYYYDDMM:
2016/30/12
, 2016.30.12
, 2016-30-12
- DDMMYY:
30/12/16
, 30.12.16
, 30-12-16
- MMDDYY:
12/30/16
, 12.30.16
, 12-30-16
- YYMMDD:
16/12/30
, 16.12.30
, 16-12-30
- YYDDMM:
16/30/12
, 16.30.12
, 16-30-12
(Least bad ones highlighted.)
Discouraged numeric date display formats
These are inherently fine, but can be ambiguous without proper context due to proliferation of forbidden formats.
- DDMMYYYY:
30/12/2016
, 30.12.2016
, 30-12-2016
- DDMMYY:
30/12/’16
, 30.12.’16
, 30-12-’16
- YYMMDD:
’16/12/30
, ’16.12.30
, ’16-12-30
- MMDDYYYY:
12/30, 2016
- MMDD:
12/30
, -12-30
- DDMM:
30.12.
- YYYYMM:
2016/12
, 2016-12
(can both be mistaken as year ranges if YY < 12)
- MMYYYY:
12/2016
, 12, 2016
Acceptable numeric date display formats
- YYYYMMDD:
2016/12/30
, 2016-12-30
, 2016.12.30
As you can see, the only acceptable all-numeric formats are not the ones your target group is well familiar with, so don’t use one!
A free text date input should recognize any unambiguous value (including forbidden formats and seemingly redundant ones with day of the week), but it may also inform the user about a preferred format and valid date range (which may also help to choose the interpretation). It should provide immediate feedback to the user to verify the parsed result and, especially if there was any uncertainty, provide the means for the user to correct the data at any time.