How can I switch between 12 hour and 24 hour format in command line?

Solution 1:

Time settings, as as shown in the panel, are set with gsettings. You can set 12/24 hrs by the commands:

12-hour:

enter image description here

gsettings set com.canonical.indicator.datetime time-format 12-hour

24-hour:

enter image description here

gsettings set com.canonical.indicator.datetime time-format 24-hour

options are:

locale-default
12-hour
24-hour
custom

The same trick on Mate

...requires a different command:

12-hour:

dconf write /org/mate/panel/objects/clock/prefs/format "'12-hour'"

and, as one would expect, 24-hour:

dconf write /org/mate/panel/objects/clock/prefs/format "'24-hour'"

N.B. tested on Mate 16.04 by @Zana (thanks!)

Solution 2:

It is not clear to me what exactly do you want. If you want just display the hour in your terminal window, you can try:

date +%R
date +%r
date +%H
date +%I
date +%H:%M
date +%I:%M

These are different time formats used to customize your time display. %R uses time with 24 hour and %r uses 12 hour format to display the whole time. If you want just hour with no minutes, etc. you can use %H (24 hour) or %I (12 hour). You can also combine them with minutes like that %H:%M, %I:%M. There are many other options. Take a look with man date.

Then if you want to change the system global date display go to Settings -> Region & Language.

There is also environment setting LC_TIME specifiying how time & date are displayed. In my case I can set it up in /etc/environment file like this:

LC_TIME="sl_SI.UTF-8"

You can also take a look at /etc/localtime. Try:

ls -l /etc/localtime

This file is linked to some file from /usr/share/zoneinfo/. Make a link like this:

ln -sf /usr/share/zoneinfo/Europe/Ljubljana /etc/localtime

and your local settings will be set to European Ljubljana, for instance. Fell free to use any other file from /usr/share/zoneinfo/. However, I believe this last settings is only setting for the timezone and not how the date & time are displayed.

Solution 3:

For new users, if you are using gnome on ubuntu version >18.04

gsettings set org.gnome.desktop.interface clock-format 12h
gsettings set org.gnome.desktop.interface clock-format 24h