How to get current or set wanted regional format in the terminal?
Regional Formats changes the following variables:
LC_NUMERIC
LC_TIME
LC_MONETARY
You can use locale
to check the current set format.
ron@ron:~$ locale
LANG=en_US
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=
If you want to see all the locale available in your system you can use:
ron@ron:~$ locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
To change, for example, the date format to US you can use:
LC_TIME=en_US.UTF-8
To change it permanently:
sudo update-locale LC_TIME=en_US.UTF-8
You can also manually edit the file /etc/default/locale
instead of update-locale
, if you wish so. Changes will be applied the next time you log-in.
Refer to Locale - Community Help Wiki for more details. man 5 locale
will you more options to find-tune any of the formats.
This command sets regional formats to en_US.UTF-8 in the same manner as Language Support:
dbus-send --print-reply --system --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID org.freedesktop.Accounts.User.SetFormatsLocale string:'en_US.UTF-8'
It updates your user setting in accountsservice and the file ~/.pam_environment
.
/etc/default/locale
is updated by Language Support only if you click the Apply System-Wide button.
Haven't figured out the corresponding command to check the current format.
Can't help wondering why you want to do it. It's normally not a good idea to mess with these settings manually on an Ubuntu deskop. Language Support does the right thing.
You could check the LANGUAGE variable in your shell with:
echo $LANGUAGE
The output for my system running GB English is:
en_GB:en