Default date format when language not set for a user

This is tangential to the thread about date format issues

I open this as a separate topic to focus on one specific but important choice: the date format used if the user did not set their language in the user preferences.

The current default, suggested in the other thread, is to use the system date format. In some cases, that doesn’t seem to happen correctly.

An alternative proposal would be using the ISO 8601 format: %Y-%m-%d

The benefit of this proposal is that it is really obvious that there is no default.

Currently, if people enter values where %d is less than or equal to 12, the day and month are swapped and the user may not realize something bad happened.

On desktop it is %x which uses locales of the system (in the interface language).
On web it is %Y-%m-%d due to lack of similar feature.

There are two problems with %x:

  • it appears to be unreliable (see the last comment in the other thread)
  • in cases where it is incorrect, it may not be obvious that %d and %m have been swapped

Would you consider abandoning %x and using the same ISO 8601 format for both web and desktop?

This question is independent of the other issue: why my Python gives the wrong value for %x

It is not unreliable.

If user does not know the format, there is any format that could fix that.

No because it provides a bad experience for the user.


The swapped %d and %m are really bad for a user.

The ISO 8601 format may be unfamiliar for some users but it is the lesser evil

This discussion is moot as %x should do the work anyway.