Use ISO time and date format in KDE 5

I find en_SE to be fully ISO-compliant: YYYY-MM-DD HH:MM (24h)

Whereas for me en_DK uses DD/MM/YYYY HH.MM (24h) which is not ISO compliant both in the date order (it's simply a western europe order) and in the time separator.

en_CA uses YYYY-MM-DD hh:MM (12h) likewise close but uses AM/PM rather than 24h.

Tested on KDE Plasma 5.11.3, running on Arch Linux.

No that is impossible. Is is not possible to manually set the formats like it was possible in KDE4. You always have to choose a locale for each category (Number, Time, Currency, Units, Collation)

Unfortunately installing a more standards compliant locale (like en_DK or en_NL) does not help. KDE5 uses its own list of locales, ignoring the system locales.

For the desktop clock you can set the date and time format apart from the system format in newer version of KDE 5.

One locale which uses ISO 8601 timestamps is en_DK.

I'm guessing KDE 5 returned to the POSIX locale mechanism for consistency. KDE 4 was the odd one – practically all other programs use the POSIX-format locale settings, with predefined formats. (This means the settings will be understood by non-KDE programs, too.)

If KDE doesn't list en_DK, grep the output of locale -a to check whether the en_DK.utf8 item is available. If it isn't, on Debian/Ubuntu you should be able to add it via dpkg-reconfigure locales. On other distributions, if there is /etc/locale.gen, add (or uncomment) the following lines to it:

en_DK.UTF-8 UTF-8
en_DK ISO-8859-1

Run locale-gen to rebuild.

If KDE still doesn't list en_DK despite locale -a showing it, you should still be able to set it globally. The above formats correspond directly to POSIX locale environment variables:

  • Region → LANG
  • Numbers → LC_NUMERIC
  • Time → LC_TIME
  • Currency → LC_MONETARY
  • Sorting → LC_COLLATE

The system-wide location for these varies. Often you can set them via localectl:

localectl set-locale LANG="en_US.UTF-8" LC_TIME="en_DK.UTF-8"

Sometimes you'll have to edit /etc/locale.conf, /etc/default/locale, or similar.

Per-user, the same can be set in ~/.pam_environment, ~/.profile, ~/.bash_profile, or similar.