Ubuntu – How to configure the clock date format to ISO 8601 in Unity?

unity

By default, the time in AM/PM style is shown, I would like to have the same that ls gives:

2013-01-09 01:12

That is 24 hours and ISO 8601. How can I do this?

I am aware of the following question. Maybe that question was too general to be answered:
How do I change to ISO 8601 date format?

I tried the following:

  1. I click on the actual clock-display and I get a calendar. In that calendar I read "Time & Date Settings.." – so I click on it: No effect. No nothing.

  2. I right-click on the clock-display but I get the same calendar like when left-clicking on it.

Best Answer

There's no easy way to do it in the GUI. One can either use dconf-editor (which is GUI-ish), and edit two keys in /com/canonical/indicator/datetime (time-format to custom, and custom-time-format to the desired strftime directives, in your case %F %R (or, equivalently, %Y-%m-%d %H:%M)), or do it directly from the terminal with the following two commands (which, just to be clear, change the same keys):

dconf write /com/canonical/indicator/datetime/time-format "'custom'"
dconf write /com/canonical/indicator/datetime/custom-time-format "'%F %R'"

Note that the doubled quotes are necessary due to dconf's idiosyncracies. (For clarity, I'm referring to the nesting of single quotes (') inside double quotes (").) Note also that to include seconds, one can replace %R with %T.

I do not recall which release started including the dconf tools by default, so if they are unavailable, simply install the dconf-tools package and proceed.

Update 2016-05-17: While the above should still work, as a matter of principle it's probably better to access the dconf database via gsettings set than dconf write -- same database, but a tool more intended for end-users. The corresponding GUI-ish tool remains dconf-editor.

Related Question