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:
gsettings set com.canonical.indicator.datetime time-format 12-hour
24-hour:
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
Solution 4
The locale settings can affect the time display format for the date
command. E.g. With en_US
it is 12-hour:
% LANG='en_US.UTF-8'; date
Tue 14 Jul 2020 09:13:29 PM BST
And 24-hour for en_GB
:
% LANG='en_GB.UTF-8'; date
Tue 14 Jul 2020 21:13:29 PM BST
This can be changed for the system by running the following command (provided you have the appropriate language files installed):
sudo update-locale LANGUAGE=en_GB.UTF-8 LANG=en_GB.UTF-8
Related videos on Youtube
Abhishek Poudel
Updated on September 18, 2022Comments
-
Abhishek Poudel over 1 year
I am in a learning phase. I could not find the command to change my time format from 12 hour to 24 hour. Can anyone please help me with this? Thank you!!
-
heemayl almost 8 yearsDo you want to get the time or set the time from terminal?
-
Jacob Vlijm almost 8 yearsHi Abhishek. Could you give some feedback on the answers? Was it what you were looking for? please mention.
-
-
Zanna almost 8 yearsI like this answer a lot (I upvoted it also) but in MATE I get 'no such schema' :( and in fact
gsettings list-recursively | grep time-format
returns nothing at all. I wonder how I can do it... -
Jacob Vlijm almost 8 years@Zanna, what version of Mate do you run? I found two settings that should work if settings made sense, but they don't change a thing on my VM:
gsettings set org.gnome.desktop.interface clock-format 12h
anddconf write /org/mate/panel/objects/clock/prefs/format "'12-hour'"
. (Mate 15.10) -
Zanna almost 8 yearsFirst one does nothing for me either (even on reboot), but
dconf write /org/mate/panel/objects/clock/prefs/format "'12-hour"'
works instantly (I undid it - I hate 12 hr clock haha) -
Jacob Vlijm almost 8 years@Zanna Greatgreat! thanks for testing, will add it to the answer :)
-
Zanna almost 8 years^_^ my pleasure. Now trying the same in Xubuntu...
dconf write /org/gnome/desktop/interface/clock-format "'12-hour'"
should do it, but doesn't >_< I'll come back if I fix it -
George Udosen over 7 yearsCorrect me if I am wrong but I tried
"'12-hour"'
and was unable to run till I did"'12-hour'"
although my time still the same. Is that a typo in the answer? -
Jacob Vlijm over 7 yearsHi @George I am on mobile currently, but I am pretty sure you are right, I will edit it in. Thanks a lot!
-
Ahmad Ismail almost 6 yearsI used the code in Ubuntu Mate 18.04 and it worked fine. But when I restart the PC, it is back to 24Hour format again.
-
Ketil Malde over 4 yearsI've linked /etc/localtime to the appropriate timezone, but I still get a 12-hour format (but the right timezone offset from GMT). I have no LC* or other variables set. (I get the correct output with
LC_TIME=..... date
, but I would like to have 24-hour time as the default. -
nobody over 4 yearsTake a look here askubuntu.com/questions/918973/…, how to setup LC_TIME.
-
Ketil Malde over 4 yearsThanks. It might be that the locale needs to be "enabled". However, I discovered that
LANG
was set toen_US.UTF-8
in my shell, 'unset'ing this environment variable changed the output ofdate
to 24h format. (I haven't figured out how it got set in the first place, though.) -
Henno over 3 years
*** update-locale: Error: invalid locale settings: LANGUAGE=en_GB.UTF-8 LANG=en_GB.UTF-8
can be fixed withsudo locale-gen "en_GB.UTF-8"
-
Pierz over 3 yearsThat error message usually means that the requested locale files are not installed - they can be installed:
sudo apt install language-pack-XX
-
Sam Sirry over 3 yearsMy brain shorts out when I try to read
Ljubljana
-
nobody over 3 years@SamSirry :-) Read or pronounce? Try this ebralec.si/branje/?jezik=en. Paste
Ljubljana
in there and listen.